@RequestParam 將客戶端請(qǐng)求中的參數(shù)值映射到相應(yīng)方法的參數(shù)上;
? ? ? ? ? ? ? ? ? ? RequestParam中的required是指這個(gè)參數(shù)是否客戶端必須提供,defaultValue則是如果沒有提供該參數(shù)默認(rèn)值是什么;
@RestController ? ?返回json字符串的數(shù)據(jù),直接可以編寫RESTFul的接口;
@CrossOrigin 可以處理跨域請(qǐng)求,讓你能訪問不是一個(gè)域的文件;
@ApiOperation
首先@ApiOperation注解不是Spring自帶的,它是是swagger里的
注解@ApiOperation是用來構(gòu)建Api文檔的
@ApiOperation(value = “接口說明”, httpMethod = “接口請(qǐng)求方式”, response = “接口返回參數(shù)類型”, notes = “接口發(fā)布說明”;
使用參考鏈接:http://www.itdecent.cn/p/8033ef83a8ed
@NotNull 被注釋的元素不能為null:
@NotNull
private String name;
@NotNull
private Integer age;
@SpringBootApplication 申明讓spring boot自動(dòng)給程序進(jìn)行必要的配置,等價(jià)于以默認(rèn)屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan;
@RefreshScope 如果代碼中需要?jiǎng)討B(tài)刷新配置,在需要的類上加上該注解就行。但某些復(fù)雜的注入場(chǎng)景下,這個(gè)注解使用不當(dāng),配置可能仍然不動(dòng)態(tài)刷新;
@FeignClient springboot調(diào)用外部接口:
聲明接口之后,在代碼中通過@Resource注入之后即可使用。@FeignClient標(biāo)簽的常用屬性如下:
name:指定FeignClient的名稱,如果項(xiàng)目使用了Ribbon,name屬性會(huì)作為微服務(wù)的名稱,用于服務(wù)發(fā)現(xiàn)
url: url一般用于調(diào)試,可以手動(dòng)指定@FeignClient調(diào)用的地址
decode404:當(dāng)發(fā)生http 404錯(cuò)誤時(shí),如果該字段位true,會(huì)調(diào)用decoder進(jìn)行解碼,否則拋出FeignException
configuration:?Feign配置類,可以自定義Feign的Encoder、Decoder、LogLevel、Contract
fallback:?定義容錯(cuò)的處理類,當(dāng)調(diào)用遠(yuǎn)程接口失敗或超時(shí)時(shí),會(huì)調(diào)用對(duì)應(yīng)接口的容錯(cuò)邏輯,fallback指定的類必須實(shí)現(xiàn)@FeignClient標(biāo)記的接口
fallbackFactory:?工廠類,用于生成fallback類示例,通過這個(gè)屬性我們可以實(shí)現(xiàn)每個(gè)接口通用的容錯(cuò)邏輯,減少重復(fù)的代碼
path:?定義當(dāng)前FeignClient的統(tǒng)一前綴
@controller 控制器(注入服務(wù))
@service 服務(wù)(注入dao)
@component 定義spring管理Bean(把普通pojo實(shí)例化到spring容器中,相當(dāng)于配置文件中的<bean id="" class=""/>)
@Autowired 可以對(duì)類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動(dòng)裝配的工作。?通過 @Autowired的使用來消除 set ,get方法
在使用@Autowired之前,我們對(duì)一個(gè)bean配置起屬性時(shí),是這用用的
<property name="屬性名" value=" 屬性值"/>
通過這種方式來,配置比較繁瑣,而且代碼比較多。在Spring 2.5 引入了 @Autowired 注釋
注意事項(xiàng):
在使用@Autowired時(shí),首先在容器中查詢對(duì)應(yīng)類型的bean
如果查詢結(jié)果剛好為一個(gè),就將該bean裝配給@Autowired指定的數(shù)據(jù)
如果查詢的結(jié)果不止一個(gè),那么@Autowired會(huì)根據(jù)名稱來查找。
如果查詢的結(jié)果為空,那么會(huì)拋出異常。解決方法時(shí),使用required=false
??@Override 在重寫父類的onCreate時(shí),在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性。
@RefreshScope 如果代碼中需要?jiǎng)討B(tài)刷新配置,在需要的類上加上該注解就行,使用參考鏈接:https://www.cnblogs.com/yjmyzz/p/8085530.html;
常用的 lombok 注解
@EqualsAndHashCode 實(shí)現(xiàn)equals()方法和hashCode()方法 @ToString:實(shí)現(xiàn)toString()方法?
@Data 注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法?
@Setter 注解在屬性上;為屬性提供 setting 方法?
@Getter 注解在屬性上;為屬性提供 getting 方法?
@Log4j 注解在類上;為類提供一個(gè) 屬性名為log 的 log4j 日志對(duì)象?
@NoArgsConstructor 注解在類上;為類提供一個(gè)無參的構(gòu)造方法?
@AllArgsConstructor 注解在類上;為類提供一個(gè)全參的構(gòu)造方法?
@Cleanup 關(guān)閉流 @Synchronized:對(duì)象同步 @SneakyThrows:拋出異常
使用參考鏈接:https://blog.csdn.net/mccand1234/article/details/53456411;
@ConfigurationProperties 把同類的配置信息自動(dòng)封裝成實(shí)體類:可以使屬性文件中的值和類中的屬性對(duì)應(yīng)起來;
使用方式有兩種 :
1、在類上使用該注解?
2、在工廠方法上使用該注解 (@bean)
注意:在springBoot中除了使用這個(gè)注解讀取屬性文件值外,還可以用@Value注解。
@Value(“${redis.config}”)?
@component 把普通pojo實(shí)例化到spring容器中,相當(dāng)于配置文件中的?<bean id="" class=""/>)
泛指各種組件,就是說當(dāng)我們的類不屬于各種歸類的時(shí)候(不屬于@Controller、@Services等的時(shí)候),我們就可以使用@Component來標(biāo)注這個(gè)類
lombok:
@Accessors 注解用來配置lombok如何產(chǎn)生和顯示getters和setters的方法。?
默認(rèn)情況下,lombok按照豆豆說明書產(chǎn)生getters和setters:例如一個(gè)名為pepper(弗蘭特產(chǎn)辣椒,lombok的logo是一只小辣椒)屬性的getter方法是getPepper。然而一些人可能為了一個(gè)更好看的API,想去打破豆豆說明書。@Acessors就是讓我們做這個(gè)的.
@Accessors 因此有3個(gè)選擇:?
1. fluent 一個(gè)布爾值。如果為真,pepper的getter就是 pepper(),setter方法就是pepper(T newValue)。并且,除非特別說明,chain默認(rèn)為真。?
2. chain 一個(gè)布爾值。如果為真,產(chǎn)生的setter返回的this而不是void。默認(rèn)是假。如果fluent=true,那么chain默認(rèn)為真
3. prefix 一系列string類型。如果顯示,屬性必須加上某些定義的前綴。每個(gè)屬性名反過來與列表中的每個(gè)前綴進(jìn)行比較,一個(gè)找到一個(gè)匹配,這個(gè)前綴被提取出來為屬性創(chuàng)建基本的名字。前綴列表中不包含任何前綴也是合法的,為空則總是匹配。字符都是字母,緊接著前綴后的字符一定不能是小寫字母。例如,pepper對(duì)前綴p不是相等匹配,而跟pEpper是匹配的(也就意味著屬性的基本名字是epper)