Skip to content

SpringBoot2

kcp edited this page Jul 13, 2020 · 2 revisions

title: SpringBoot2 新特性 date: 2018-12-21 10:49:53 tags: - SpringBoot categories: - Java

目录 start

  1. SringBoot2
    1. 从1迁移到2
    2. 新特性
    3. Web模块
      1. Web容器
        1. Tomcat
        2. Jetty
      2. 跨域
      3. SpringBoot上下文事件监听
    4. 数据库模块
      1. Relation Database
        1. 多数据源
      2. No Relation Database

目录 end|2020-04-27 23:42|


SringBoot2

官方文档

springboot gradle

从1迁移到2

变化比较大 官方说明对比1所更改的文档

spring boot 2.0 半月的实战_阶段性总结1 SpringBoot2.0 jpa多数据源配置 Springboot2.0 升级(Gradle工程) 使用精简版jdk9在docker上运行springboot2 Spring Boot 2.0系列文章(一):Spring Boot 2.0 迁移指南

新特性

Spring Boot 2.0系列文章(二):Spring Boot 2.0 新特性详解 参考: Spring Boot 2.0 新特性和发展方向

Web模块

Web容器

Tomcat

org.springframework.boot:spring-boot-starter-web 依赖中默认包含了Tomcat

Jetty

Spring Boot – Configure Jetty Server

跨域

SpringBoot2的跨域配置 最终是采用的Nginx进行反向代理,将后台服务放在前台服务子路径下

SpringBoot上下文事件监听

  • 直接看 源码中 ApplicationContextEvent 类的 继承结构, 就能发现 有四个子类
    • ContextCloseEvent
    • ContextRefreshEvent
    • ContextStopEvent
    • ContextStartEvent

在任意的Component中添加如下类似的方法就能监听到如上事件

   @EventListener
   public void handleContextClosedEvent(ContextClosedEvent event) {
       // todo 
   }
@Configuration
public class Listener implements ApplicationListener {
 @Override
 public void onApplicationEvent(ApplicationEvent event) {
   // 在这里可以监听到Spring Boot的生命周期
   if (event instanceof ContextRefreshedEvent) {
     System.out.println("应用刷新");
   }
   if (event instanceof ContextStartedEvent) {
     System.out.println("应用启动");

   } else if (event instanceof ContextStoppedEvent) {
     System.out.println("应用停止");

   } else if (event instanceof ContextClosedEvent) {
     System.out.println("应用关闭");
   }
 }
}
  • 但是只有应用刷新, 应用启动完成, 应用关闭是能够正常监听到的

数据库模块

Relation Database

多数据源

No Relation Database

Summary

Clone this wiki locally