1. 程式人生 > >SpringBoot 2.1.1 官方文件閱讀筆記 part1

SpringBoot 2.1.1 官方文件閱讀筆記 part1

2.1.1版本要求:

  1. Java 8 至 Java 11
  2. Spring 5.1.3

內建工具支援:

  1. Maven 3.3+
  2. Gradle 4.4+

內建 servlet 容器:

  1. Tomcat 9.0 要求 Servlet 4.0
  2. Jetty 9.4 要求 Servlet 3.1
  3. Undertow 2.0 要求 Servlet 4.0

SpringBoot 應用程式可以部署在 Servlet 3.1 以上的任意容器中

spring-boot-starter-parent      提供了 maven預設設定以及dependency-management來省略引入包的版本(含有<executions>配置以繫結“二次打包”的目標)
spring-boot-starter-web         用於提供網路應用初始化(將會為應用加入Tomcat以及SpringMVC,RESTful風格)
spring-boot-maven-plugin        構建可執行jar包的必要依賴(若使用Spring Boot starter parent pom,就無需配置,只要引入外掛即可)
spring-boot-starter-data-jpa    使用JPA(Java持久層API)需要引入的依賴
@RestController                     表示直接返回結果字串給呼叫者
@EnableAutoConfiguration            表示根據匯入的依賴自動配置Spring
@ImportResource                     可用於匯入XML檔案
@Configuration                      可以註冊額外的bean或者匯入附加的配置類
@ComponentScan                      用於掃描專案中設定的所有Spring元件(若不想使用該註解,可用@Import({XXXX.class,aaaa.class})代替)
@SpringBootApplication             (設定在入口類上方)用於設定包掃描。使用此註解時相當於同時使用 @Configuration,@EnableAutoConfiguration 以及 @ComponentScan。並且使用的是這三者的預設配置。
                                    如果不想使用該註解,同時使用@EnableAutoConfiguration 和 @ComponentScan 兩者搭配可以作為替代
public class Example
{
   public static void main(String[] args) throws Exception
   {
       //傳入Example.class用以告知SpringApplication該類是主要的Spring元件,args陣列用以暴露命令列語句
      SpringApplication.run(Example.class, args);
   }
}

SpringBoot官方推薦基於Java程式碼的設定模式(註解模式)

//建議將該註解設置於作為核心的並有@Configuration標識的類上
springboot自動基於匯入的jar包進行配置(包括資料庫連結的bean)(該功能通過 @SpringBootApplication 或 @EnableAutoConfiguration 實現)

設定不使用某部分自動裝配功能

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

當類不在classpath中時,使用excludeName進行設定,此時需要完全路徑

@EnableAutoConfiguration(excludeName={.../.../DataSourceAutoConfiguration.class})

配置包掃描時,如果一個bean擁有構造器,可以省略@Autowired註解

在載入靜態資源時,springMVC可以設定HTTP請求快取頭用以響應

新增springboot提供的額外工具

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
   </dependency>
</dependencies>

使用該工具後,類路徑下的檔案有改動時會自動重啟,便於開發者快速瞭解變化
該工具將快取選項預設設定為禁用狀態,當需要看到所有請求細節的日誌時,將spring.http.log-request-details設為開啟狀態
該工具中的重啟功能對於使用ObjectInputStream進行反序列化的物件效果不好