首頁 > 軟體

詳解springboot測試類註解

2022-07-11 18:02:06

建立一個TextHello類

 

TextHello類的程式碼如下

 @Controller
@RequestMapping("/hello")
public class TextHello {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "hello,程程呀";
}
}

我是在pom.xml檔案中增加依賴如下  

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

在瀏覽器結果如下:

 

自動設定: pom.xml spring-boot-dependencies:核心依賴在父類別工程中! 我們在寫或者引入springboot依賴的時候不需要指定版本號,是因為有這些版本倉庫 啟動器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

啟動器:就是springboot的啟動場景 比如說spring-boot-starter-web,他就會幫助我們自動匯入web環境下的所有依賴。 而springboot會將所有的場景都變成一個個的啟動器

註解

@SpringBootApplication :包含@configuration,@ComponentScan,@EnableAutoConfiguration通常在主類上
@SpringBootConfiguration :springboot的設定
@Configuration :spring設定類
@Component :說明這也是一個spring的元件
@EnableAutoConfiguration :自動設定
@AutoConfigurationPackage :自動設定包
@ResponseBody:返回資訊為json形式的資料。一般來說會直接使用@RestRestController標註。
@CrossOrigin:解決跨域問題。如果沒做特殊處理,一般的@CrossOrigin都會加在控制層的類上。除非引入了gateway閘道器,就無需通過註解解決跨域。
@MapperScan:以往在使用@Mapper一個個定義mapper,有了@MapperScan之後,只需指定mapper包,就不需要一個個使用@Mapper註解了。
@EnableScheduling:開啟定時任務,在類上使用。
@Value:將外部組態檔的值動態注入。。
@Transactional:宣告式事務註解。
@Data:lombok下的註解,使用後就無需再寫實體類的getter和setter方法。
@RestController:用於標註控制層元件,包含@Controller和@ResponseBody。

springboot所有的自動設定都是在啟動的時候掃描並載入:spring.factories 所有的自動設定類都在這裡面,但是不一定會生效,要對其進行判斷對應start,就有了對應的啟動器,有了啟動器,自動裝配才會生效,然後設定成功。

主啟動類

@SpringBootApplication :標註這個類是一個springboot的應用:啟動類下的所有資源被匯入 springboot理解:自動裝配,run() 全面接管springMVC設定!

Static:存放靜態資源,比如:css,js,圖片 Templates:模板檔案 application.porperties:springboot的組態檔

組態檔格式

properties檔案 :key-value的格式

yml檔案 : 階梯狀的屬性檔案

區別

  • .yml 格式不支援 @PropertySource 註解匯入設定。
  • properties檔案和yml檔案中有相同屬性的時候,properties檔案的優先順序高於yml檔案
  • 看上面的圖:兩個組態檔的格式不一樣,他們設定形同的時候properties的優先順序高於yml檔案,但是建議使用yml檔案,這個檔案的結構更清晰。

IT145.com E-mail:sddin#qq.com