文章目录
- 1. 什么是springboot:
- 2. 为什么要用他:
- 3. 配置文件有哪几个: application.properties,yml
- 4. 开启 Spring Boot 特性有哪几种方式?
- 5. 你如何理解 Spring Boot 中的 Starters?
- 6. springboot默认配置源:
- 7. 如何在 Spring Boot 启动的时候运行一些特定的代码?
- 8. Spring Boot 有哪几种读取配置的方式?
- 9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
- 10. springboot热部署的几种方式
- 11. springboot如何使用redis
- 12. springboot自定义异常
- 12. springboot整合mybatis
- 13. springboot bean启动顺序
- 14. 定时任务使用
- 16. springboot多个实例如何只调用一次定时任务
- 17. 定时任务单线程
- 18. springboot异步使用
- 20. springboot自定义注解
- 21 springboot自动装配原理
- 22 理解spring-boot-starter-parent
- 23 springboot session共享
1. 什么是springboot:
能够快速构建spring应用的框架。
2. 为什么要用他:
1. 减少了配置,提倡约定大于配置。
2. 解决依赖包的问题。
3. 很容易上手
4. 自带tomcat服务器
3. 配置文件有哪几个: application.properties,yml
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
springBootApplication(组合注解)包括
(enableautoConfiguration,componentScan,springbootconfiguration)
@SpringBootConfiguration: springboot相关配置
@enableautoConfiguration: 开启spring应用程序的自动配置,比如添加了spring-boot-starter- web,
则会自动帮我们配置tomcat、springmvc.
@componentScan: 默认扫描主类以及子类下的包。
4. 开启 Spring Boot 特性有哪几种方式?
spring-boot-starter-parent
5. 你如何理解 Spring Boot 中的 Starters?
相当于一个启动器,里面包含了很多相关的依赖包,不需要人为的去导入依赖。
比如常见starter: starter-web、starter-data-redis、starter-log4j
6. springboot默认配置源:
HikariCP
7. 如何在 Spring Boot 启动的时候运行一些特定的代码?
实现接口commandLineRunner, 里面有个run方法,Order指定执行的一个顺序。
8. Spring Boot 有哪几种读取配置的方式?
使用Environment进行读取,
@Autowired
private Environment environment;
String property = environment.getProperty("server.port");
自定义配置文件
@Configuration
@ConfigurationProperties
@PropertySource("classpath:application-mq.properties")
9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
log4j,Log4j2,Lockback. 默认是lockback.
10. springboot热部署的几种方式
在pom文件里加入spring-boot-devtools即可。
11. springboot如何使用redis
1. 导入starter-data-redis
2. 配置文件里指定端口与是否密码之内的
3. 依赖注入StringRedisTemplate或ReidsTemplate来进行获取值。
区别:
1. StringRedisTemplate继承了RedisTemplate。
2. RedisTemplate是个泛型类而StringRedisTemplate不是。
3. StringRedisTemplate中k、v都是string类型,RedisTemplate都是object类型
12. springboot自定义异常
定义一个异常类使用ControllerAdvice注解,定义一个方法,使用exceptionHander
(Exception.class)注解。
12. springboot整合mybatis
1. pom文件导入相关依赖
2. xml配置: mybatis.xml位置、pojo位置、映射xml位置
3. 启动项加入MapperScan扫描mapper(相当于dao)
13. springboot bean启动顺序
1. 使用depondsOn(value="")
2. 把后加载的类放到深一点的地方。
14. 定时任务使用
1. 在主类上使用@enableScheduling注解
2. 方法上使用Scheduled(fixedDelay,fixedRate)
3. fixedDelay(每隔多少秒执行一次,无论这个方法执行都久都要等
fixedRate: 如果ONE_Minute为3秒,而t2方法执行了10秒,那么本来过了
3秒该第二次执行了,但是由于t2依然再执行,所以这个时候会等待第一次执行完了立马第二次执行,不会再等待3秒了
16. springboot多个实例如何只调用一次定时任务
1. 通过配置文件设置一个变量,那个实例启动,那个不启动。
2. 也可以单独弄一个项目管理配置文件
17. 定时任务单线程
默认是单线程,可以通过配置改成多线程。
@Configuration
public class ScheduleConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
return scheduler;
}
}
18. springboot异步使用
1. 在主类加上@enableasyn注解
2. 要在异步使用的方法上加上@Async就行
20. springboot自定义注解
21 springboot自动装配原理
启动类上加了@SpringBootApplication,这是一个组合注解
下面有三个核心注解:
- @springbootConfiguration 对应的是自己这边配置文件
- @enableAutoConfiguration 对应的是pom文件里的starter,会自动进行解析加载启动器。
- @ComponentScan 自动扫描类,默认扫描的是启动器下的子类。类似于spring中xml配置文件里的context:component-scan
22 理解spring-boot-starter-parent
- 里面定义了java的编译版本,2.0.6默认是jdk1.8
- 编码格式utf-8
- 里面有个spring-boot-dependencies定义了jar包的版本号
- 资源过滤等等。
23 springboot session共享
- 加入依赖包即可
- 然后就该怎么使用就怎么使用,没有任何特别之处。