8.@PropertySource
加载指定的配置文件。如下,如果不声明的话,将从主配置文件加载。
9.@ImportResource
导入 Spring 的配置文件,让配置文件里面的内容生效;这种方式比如一个类没有使用 @Componet 注解注册进容器,则使用自动装配 autowired 找不到。引入文件后,即可找到。
Spring Boot 里面没有 Spring 的配置文件,我们自己编写的配置文件,也不能自动识别;
想让 Spring 的配置文件生效,加载进来; @**ImportResource** 标注在一个配置类上
10. springboot 的 profile 加载
在配置文件的时候,我们可以建立多个。用 - 进行结尾。通过主配置文件,配置 profiles 的 active 就可以指定加载文件。
在同一个文件中, yml 文件支持文档块的写法,为 — 。
11. SpringBoot 激活指定 profile 的几种方式
第一种:直接在配置文件中通过 active 指定
第二种:通过 java -jar 的参数指定
第三种:通过虚拟机参数
12. SpringBoot 项目内部配置文件加载顺序
顺序如下;
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot 会从这四个位置全部加载主配置文件; ** 互补配置 ** ;
我们还可以通过 spring.config.location 来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
![](https://img-blog.csdnimg.
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
cn/img_convert/8f3f8c704cf4c999fdfac9b103f1119d.png)
13. SpringBoot 外部配置文件加载顺序
这个挺多的,我们就几个重要的。
高优先级的会覆盖低优先级的。
命令行上的参数配置是优先级最高的。
jar 包外的带 profile 的配置文件。
jar 包内的带 profile 的配置文件。
jar 包外的不带 profile 的配置文件。
jar 包内的不带 profile 的配置文件。
14. Springboot 日志关系
SpringBoot 默认使用的 slf4j+logback 。引入 logging-starter 就可以使用。能自动适配其他日志。只需要将日志里面的 commons-logging 移除。就会自动引入其他日志。
使用 LoggerFactory 可以获得 logger 。通过 logger 就可以记录日志。
日志的一些配置
logging.level.com.atguigu=trace 指定打印级别
logging.file=G:/springboot.log 指定日志生成路径
logging.path=/spring/log 指定日志生成相对路径
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n 指定控制台输出格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== 指定文件中日志输出格式
15. SpringBoot 如何扩展 SpringMVC 的配置
通过建立自己的类继承 WebMvcConfigurerAdapter ,在类上面打上注解 @Configuration 。然后重写里面的方法即可。容器中的所有的 WebMvcConfigurer 会一起起作用。
如果我们不想使用 mvc 的自动配置,全部使用自己的。可以在配置类上增加注解 @EnableWebMvc 。这个注解可以导入一个 webmvcconfigurationsupport 的类。然后 mvc 的自动配置类上的注解有这么一句话,有一个条件注解,当没有上面那个类的时候,才生效。
16. SpringBoot 如何注册 filter , servlet , listener
编写好一个 servlet 后,声明一个类,返回 ServletRegistrationBean 。通过里面的方法将 servlet 包装一下返回。
编写一个 filter 。通过 FilterRegister 包装。
编写一个 listener ,实现注册 bean 。
17. SpringBoot 切换成 undertow
先排除掉 tomcat ,然后再引入 undertow 就行了。
18. SpringBoot 的任务
异步任务在启动类上,增加注解 @EnableAsync ,此时就开启了。然后对于异步的方法,打上注解 @Async 。
定时任务,在启动类上,打上注解 @EnableScheduling ,需要定时的方法使用 @Scheduled 注解。这里面分为秒,分,小时,日期,月份,星期。