本文共 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 ListfindUserList(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代码启动Tomcatpublic 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/