10. springboot 的 profile 加载


在配置文件的时候,我们可以建立多个。用 - 进行结尾。通过主配置文件,配置 profiles 的 active 就可以指定加载文件。

在同一个文件中, yml 文件支持文档块的写法,为 — 。

11. SpringBoot 激活指定 profile 的几种方式


第一种:直接在配置文件中通过 active 指定

第二种:通过 java -jar 的参数指定

第三种:通过虚拟机参数

12. SpringBoot 项目内部配置文件加载顺序


顺序如下;

优先级由高到底,高优先级的配置会覆盖低优先级的配置;

SpringBoot 会从这四个位置全部加载主配置文件; ** 互补配置 ** ;

我们还可以通过 spring.config.location 来改变默认的配置文件位置

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;

13. SpringBoot 外部配置文件加载顺序


这个挺多的,我们就几个重要的。

高优先级的会覆盖低优先级的。

命令行上的参数配置是优先级最高的。

jar 包外的带 profile 的配置文件。

jar 包内的带 profile 的配置文件。

jar 包外的不带 profile 的配置文件。

jar 包内的不带 profile 的配置文件。

14. Springboot 日志关系


SpringBoot 默认使用的 slf4j+logback 。引入 logging-starter 就可以使用。能自动适配其他日志。只需要将日志里面的 commons-logging 移除。就会自动引入其他日志。

使用 LoggerFactory 可以获得 logger 。通过 logger 就可以记录日志。

日志的一些配置

logging.level.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 注解。这里面分为秒,分,小时,日期,月份,星期。

邮件任务

引入邮件任务启动器。在配置文件中进行配置。通过 javamailsenderimpl 来发送。可以发送简单的邮件和复杂的邮件 SimpleMailMessage 和 MimeMessage 。

19. SpringBoot 热部署


jrebal 是收费的。

一般使用 springboot-dev-tool 。通过 ctrl+f9 进行热部署。开启 idea 的自动编译。

20. SpringBoot 的监控


引入 actuatro 的监控器。配置文件需要配置安全关闭。management.security.enabled=false 。可以配置 endpoint 的 shutdown 的 enable 开启,就可以直接关闭了。

21. SpringBoot 整合 redis


引入 redis 的启动器。data-redis 。引入后再配置文件进行配置 redis 的 host 。然后通过 redistemplate 就可以进行操作了。会乱码,默认使用的是 jdk 的序列化 json 器。需要改成 jackson 。自己实现一个 RedisTmeplate 。泛型为 object , object 。再实现 CacheManager 。就会发现缓存变成 json 形式了。

更多推荐

java springboot经典面试题分享,Java高级技术经理面试题