2021/1/8

Spring Boot歷史與特色

  • Spring歷史
    • 1.x : 提供XML設定
    • 2.x : 提供Annotaion設定
    • 3.x : 提供Java Config設定
    • 4.x : 官方建議使用Java Config設定
    • 5.x :  最低支持JDK8、WebFlux響應式編程模型(異步和非阻塞) 、HTTP/2特性支持
      • 響應式編程 : 
        • 非阻塞
        • 函數式編程
        • 回壓
        • lazy load
      • 函數式編程 : 將請求委託給處理函數,這些函數接收一個伺服器請求實例並自動返回Reactive Streams(支持背压Backpressure)的异步数据流处理标准 ,  Mono和Flux這些對象是實現反應式流規範中的Publisher接口的反應式類型,它們的職責是處理數據流。Mono對象處理一個僅含1個元素的流,而Flux表示一個包含N個元素的流。
      • WebFlux模塊為RestTemplate提供了一種非阻塞、反應式的替代方案,名為WebClient。
      • Spring Test現在包含一個WebTestClient,後者支持對Spring WebFlux伺服器端點執行集成測試
  • Spring boot歷史
    • 2.x :  增加之特性
      • 至少需要 JDK 8 支持
      • 響應式編程套件支持
      • HTTP 2.0支持
      • HikariCP資料庫連線池
    • @SpringBootApplication作用在啟動類
      • @SpringBootConfiguration 等价于@Configuration配置檔
      • @EnableAutoConfiguration 从classpath中搜索所有META-INF/spring.factories配置文件,并读取配置
      • @ComponentScan 掃取當前包下的所有Annotation產生Bean
  • Servlet API歷史
    • Servlet是Java EE规范中的定义的一个概念,它是处理用户请求的核心
    • 自Servlet 3.0後,WEB-INF目錄下可以不用加入web.xml , 要做initialize的工作可用下列兩種方式
      • 使用@WebServlet, @WebFilter, @WebListener來標示原有的servlet,filter,listener
      • 實作javax.servlet.ServletContainerInitializer
    • Spring Boot webmvc是通过使用Servlet3.0引入的新接口ServletContainerInitializer来消去web.xml配置文件的。
    • SpringMVC是通過使用WebApplicationInitializer取代web.xml

沒有留言:

張貼留言

test2