xl_echo编辑整理,交流学习请加1280023003 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!
为什么要用springboot?
- 传统项目配置文件过于臃肿
- 传统项目依赖版本之间兼容问题
- 传统项目整合步骤相对繁琐
什么是springboot
springboot就是一个快速开发框架,能够帮组我们快速整合第三方框架。内部嵌入Http服务器(Tomcat、Jetty),默认嵌入的是Tomcat服务器。最终以java应用程序进行执行。其开发过程中采用注解化,简化XML配置。(springboot中没有web.xml,内嵌服务器java创建tomcat)
SpringCloud的区别
springboot是一个快速开发框架,能够快速帮我们整合常用的第三方框架,完全采用注解化,最终以java应用程序进行执行。
springcloud是目前唯一一套完整的微服务框架。包含:注册中心eureka、客户端调用工具fegin、服务治理、分布式配置中心config、网关zuul…
springboot是微服务框架吗?
SpringBoot不能直接介定为微服务,如果使用springboot+SpringCloud才是微服务。SpringBoot只是一个快速快发的框架。
springboot和springmvc的关系
SpringBoot Web组件集成了SpringMVC框架
springboot中实现异步调用
在springboot中实现异步调用只需要在方法上面加上@Async,在启动加上@EnableAsync
现在启动类上加上@EnableAsync,这个时候代表开启异步调用,只要与启动类在统计包上,都能够加载到
然后在方法上面加上@Async即可开启现成执行
开启异步执行之后,被加注解的方法会单独开启线程执行
springboot 配置文件配置自定义参数
在application中定义一个变量,直接可以在方法里面取。
只需要在定义参数的时候定义一个变量,在变量上加上@Value即可,该变量就会自动对应接收配置文件中的值。
注意,该变量是在启动的时候就被加载了
多环境配置
主要作用就是为了区分不同环境的配置文件信息,如公司使用的几种环境
- 本地开发环境
- 测试环境
- 生产环境
使用多个配置文件,文件名称一定要按照规定格式,比如开发环境,一定是application-dev.properties。对照以上几个环境,一般都定义为以下名称
application-dev.properties
application-test.properties
application-prod.properties
如果想要使用哪个环境则直接在主配置文件中加入一下配置即可
spring.profiles.active=dev
springboot整合mybatis
第一步:添加依赖
在pom文件中添加mybatis的依赖,和mysql的依赖
<!-- mysql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
第二步:在启动类上面添加扫描包注解
然后在启动类上面加上@MapperScan(basePackages = {“com.echo.mapper”}) 即可直接扫描到所需要的mapper层。也可以在mapper类上面直接添加@mapper,但是如果使用@mapper该注解,只能扫到当前类,如果有多个类的话,每一个都必须添加该注解,所以使用@MapperScan更为简洁
第三步:创建mapper的接口类,这里使用注解
public interface FoodMapper {
@Select("SELECT * FROM food_name WHERE food = #{food}")
Food findByName(@Param("food") String food);
@Insert("INSERT INTO food_name(food) VALUES(#{food})")
int insert(@Param("food") String food);
}
mybatis注解开发开启驼峰转换
springboot使用注解方式整合mybaits不建议使用mybatis-config.xml。所以会出现没有办法自动匹配类和数据库的字段,这个时候开启驼峰转换不需要重新建配置文件,只需要在application.properties中添加以下类容即可
#mybatis开启驼峰转换
mybatis.configuration.map-underscore-to-camel-case=true
springboot整合@Transactional
spring事务的分类
- 声明事务
- 编程事务
spring事务使用注意事项
不能try,因为要将异常跑出给外层
哪里需要使用,直接在哪个方法上面添加一个@Transactional注解即可。
springboot多数据源
一个项目使用多个数据库(由于业务需求,数据量过大或者对于数据分类要求够高,这个时候我们可以一个项目使用多个数据库)
多数据源怎么划分?
- 根据项目分包名称(根据包名,比如package1,package2; 每个包都成为一个jar包,一个jar使用一个数据源)
- 根据注解方式(在需要其他数据源的方法上加上自定义的数据源注解,比较复杂。)
多数据源使用思路:
1、准备好两个数据库datasource1、datasource2
2、在配置文件中定义两个数据源的基本参数
3、手写一个连接数据库的方法,取出需要的数据源参数,连接数据库。
mybatis整合分页插件-pageHelper
在pom.xml中添加pagehelper
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
在application.yml中配置分页参数
# 配置分页
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
page-size-zero: true
使用示例:
PageHelper.startPage(page, pageSize);
List<Shop> list = shopDao.getList();
PageInfo<Shop> pageInfoList = new PageInfo<>(list);
System.out.println(pageInfoList.getSize() + pageInfoList.getPages());
return "success";