博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己的springboot 2.0的零散知识梳理
阅读量:4141 次
发布时间:2019-05-25

本文共 5842 字,大约阅读时间需要 19 分钟。

1.SpringbootApplication 扫描当前包和同级包

2.springboot整合log4j。

(1)建立log4j.prperties文件,
(2)导入依赖

org.springframework.boot
spring-boot-stater-log4j
1.3.8.RELEASE

3.lombok的引用

添加插件 , idea不需要 eclipse需要
导入依赖

org.projectlombok
lombok

效果:

import lombok.Data;@Datapublic class User {	private Integer id;	private String name;	private Integer age;}

pojo类中不需要写set和get方法

而且采用@Slf4j注解,就可以直接调用log.info方法打印日志

3.运行
可以在mapper上面加一个注解@Mapper 或者在application上面加@MapperScan(basePackages=“com.itmayiedu.mapper”) 就可以完成对所有包的注解

-----====

mapper文件的差异,以前是采用的mapper接口,然后在一个mapper.xml文件里面完成对接口方法的实现(数据库的操作)
现在只需要一个mapper.class的接口:

public interface UserMapper {	@Select("select * from test where name=#{name}")	User findByName(@Param("name")String name);	@Insert("insert into test(name,age) values(#{name},#{age})")	int insert(@Param("name")String name,@Param("age")Integer age);}

在方法的上面采用注解的方式,直接完成对数据库的操作。


@transactional注解 ,直接加在service中的类的方法上面,能够实现数据回滚,避免出现错误的添加信息。

4.多数据源
一个项目多少个数据源:无限个,根据内存大小
一个项目多数据源如何划分:分包名(业务) 或者是注解的方式:在mapper方法前面加入@Datasource(ref=“***”)

properties文件里面的区别: 其中一个数据源

spring.datasource.test1.driver-class-name=com.mysql.jdbc.Driverspring.datasource.test1.jdbc-url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2B8&useAffectedRows=truespring.datasource.test1.username=rootspring.datasource.test1.password=12345

另一个数据源只需要将test1修改成test2

多数据源需要文件来读取 ,下面给出其中一个例子:

package com.itmayiedu.config;import javax.sql.DataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;@Configuration@MapperScan(basePackages="com.itmayiedu.test02",sqlSessionFactoryRef="test1SqlSessionFactory")public class DataSourceConfig {	@Bean(name="test1DataSource")	@ConfigurationProperties(prefix="spring.datasource.test1")	@Primary  //这个注解制定默认的数据源,在springboot2.0之后就可以不用添加了,下面的也是	public DataSource testDataSource() {		return DataSourceBuilder.create().build();			}	@Bean(name="test1SqlSessionFactory")	@Primary	public SqlSessionFactory testSessionFactoryBean(@Qualifier("test1DataSource")DataSource dataSource) throws Exception {		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();		bean.setDataSource(dataSource);		//bean.setMapperLocations(new     		//PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml")	);		//注释的这一行是读取mapper文件的,由于本次测试没有mapper文件 所以注释掉		return bean.getObject();			}	@Bean(name="test1TransactionManager")	@Primary	public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource")DataSource dataSource) throws Exception{		return new DataSourceTransactionManager(dataSource);	}		@Bean(name="test1SqlSessionTemplate")	@Primary	public SqlSessionTemplate testSqlSessionTemplate(			@Qualifier("test1SqlSessionFactory")SqlSessionFactory sqlSessionFactory			)throws Exception {		return new SqlSessionTemplate(sqlSessionFactory);			}

在service中的方法上面添加@Transaction直接的时候,应该制定数据源管理器:@Transaction(transactionManager=“test2TransactionManager”)

5.整个mybatis分页插件pagehelper

(1)导入依赖

com.github.pagehelper
pagehelper-spring-boot-stater
1.2.5
org.apache.commons
commons-lang3

(2)service层的代码书写

public List
findUserList(int page,int pagesize){ PageHelper.startPage(page,pagesize); List
listUser = userMapper.findUserList(); PageInfo
pageInfoUserList = new PageInfo
(listUser); return pageInfoUserList; }

-----在查询层的上面写上分页的页数和大小,在查询出的下面写入返回值类型。

6. springboot调优
(1)扫包范围。要知道mapper的包,而不是所有的包
(2)JVM调优。
内部调优:
在启动的时候选择run configuration,然后在第二个选项里面,加入堆内存大小,-xx:PrintGCDetails -Xmx1024M -Xms1024M
解释:打印详细GC日志,最大堆内存为1024M ,初始堆内存为1024M,默认为4G
外部调优:

7.springboot jar 打包方式

(1)打开cmd窗口,进入到进入项目目录
(2)输入命令mvn package 或者mvn clean package
(3)打包之后,继续输入java -jar +(可以直接将上一步打包的文件拖到cmd窗口里面,完成对文件的定位)
(4)如果执行第三步的时候出现了没有主清单属性,解决方式如下:

8.监控中心

(1)SpringbootActuator
(2)Springboot-aiminUi
作用:可以监控含有多少个bean标签,还可以检测有多少个接口
9.java代码启动Tomcat

public class Test001 {    private static int PORT = 8080;    private static String Contex_Path = "/itmayiedu";    private static String SERVLET_NAME = "/indexServlet";    public static void main(String[] args) throws LifecycleException {         //创建Tomcat服务器        Tomcat tomcatserver = new Tomcat();        //设置端口号        tomcatserver.setPort(PORT);        //是否设置自动部署        tomcatserver.getHost().setAutoDeploy(false);        //创建上下文        StandardContext standardContext = new StandardContext();        standardContext.setPath(Contex_Path);        //监听上下文        standardContext.addLifecycleListener(new Tomcat.FixContextListener());        //Tomcat容器添加上下文        tomcatserver.getHost().addChild(standardContext);        //创建servlet        tomcatserver.addServlet(Contex_Path,SERVLET_NAME,new IndexServlet());        //添加servleturl映射        standardContext.addServletMapping("/index",SERVLET_NAME);//        standardContext.addServletMappingDecoded("/index",SERVLET_NAME);        tomcatserver.start();        System.out.print("启动成功");        //异步进行接收请求        tomcatserver.getServer().await();    }

转载地址:http://vfkti.baihongyu.com/

你可能感兴趣的文章
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
JAVA数据类型
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>