springBoot注解整理:
一、springBoot啟動程式注解:
@SpringBootApplication
@ServletComponentScan
[email protected]
@SpringBootApplication是一個複合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。
@ComponentScan:掃描目前包及其子包下被@Component,@Controller,@Service,@Repository注解标記的類并納入到spring容器中進行管理。
@SpringBootConfiguration:繼承自@Configuration,二者功能也一緻,标注目前類是配置類,
并會将目前類内聲明的一個或多個以@Bean注解标記的方法的執行個體納入到spring容器中,并且執行個體名就是方法名。
@EnableAutoConfiguration:啟動自動的配置,@EnableAutoConfiguration注解的意思就是Springboot根據你添加的jar包來配置你項目的預設配置,
比如根據spring-boot-starter-web ,來判斷你的項目是否需要添加了webmvc和tomcat,
就會自動的幫你配置web項目中所需要的預設配置。
也有掃描帶有相關注解類的作用。
@ServletComponentScan:需要自定義攔截器。 編寫方法:繼承WebMvcConfigurerAdapter 重寫addInterceptors方法。
@Configuration:配置spring的上下文,啟動容器。
@Value注解說明:
1.普通字元串:
@Value("我是個普通字元串")
private String nornal;
2.系統屬性
@Value("#{systemEnvironment['os.name']}")
private String osName;
3.表達式的值
@Value("#{T(java.lang.Math).random()*1000.0}")
private double randomNumber;
4.其他bean屬性
@Value("#{demoService.anotherValue}")
private String anotherValue;
5.注入檔案資源
@Value("classpath:ch2/value/test.txt")
private Resource testFile;
6.注入網站資源
@Value("http://www.baidu.com")
private Resource testUrl;
7.注入配置檔案的資料
@Value("${book.name:aaa}")
private String bookName;
備注
1.讀取額外配置檔案的屬性,需要如下注解
@PropertySource({"classpath:com/hry/spring/configinject/config.properties"})
建議寫一個類,需要的時候将這個類進行注入操作。
@Component
容器進行類掃描時遇到這個注解會把這個類當成元件添加到spring容器中,需要的時候進行注入操作即可。
@Configuration
底層還是@Component
标注一個類是配置類,spring boot在掃到這個注解時自動加載這個類相關的功能。
@Bean标簽,則類似于該xml檔案中,聲明的一個bean執行個體。
@RequestMapping 作用于類級别或者方法級别。
參數:
1.produces 指定傳回用戶端的資料類型。對應http請求頭中的Accept produces = {"text/plain", "application/*"} produces = "application/json; charset=UTF-8"
2.consumes 指定用戶端發送的檔案格式/資料等。對應http請求中的contentType consumes = {"text/plain", "application/*"}
3.headers 限制請求的請求頭。headers = {"content-type=text/plain "} headers = {"content-type=text/plain ","content-type=text/html "}
4.params 根據請求參數值的不同限制通路的請求
案例: @RequestMapping(value = "/fetch ", params = {"personId=10 "})
public String getParams(@RequestParam("personId ") String id) {
return "Fetched parameter using params attribute = " + id;
}
這個請求隻有目前端傳參personId的值為10才會觸發。
5.method 設定請求的方法,方法類型:GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE
案例: method = RequestMethod.POST
6.path 映射前端的請求路徑。 value = "plugin/table/tablesetting"
7.value 和path互為别名。使用方法相同。
8.name 了解成注釋
@ResponseBody
表示該方法的傳回結果直接寫入HTTP response body中一般在異步擷取資料時使用,如異步擷取json資料,加上@Responsebody後,會直接傳回json資料。
@Component
泛指元件,當元件不好歸類時,可以使用這個注解進行标注。一般公共的方法會用上這個注解
@RestController
等價于@Controller和@Responsebody
可以嘗試編寫替換操作
@ControllerAdvice :類上标注注解,進行異常的處理操作。
@@ExceptionHandler:方法上标注注解,進行異常的處理操作。