SpringCloud常用注解總結


https://blog.csdn.net/u014666697/article/details/90756644

公司正在用springcloud微服務改造老項目,為了方便查找和學習,匯總一些常用的注解。使用過程中定期更新。

SpringCloud常用注解總結:

@Controller 控制層,里面有多個連接
@Service 業務層,一般對於接口和實現
@Qualifier 如果一個接口有多個實現,那么注入時候加上唯一標示
@Repository 一般的dao層
@Autowired 自動注入依賴
@Resource bean的注入,同Autowired 有相同的功能。
說明:
	共同點:@Resource和@Autowired都可以作為注入屬性的修飾,在接口僅有單一實現類時,兩個注解的修飾效果相同,可以互相替換,不影響使用。
	不同點:
	@Resource是Java自己的注解,@Resource有兩個屬性是比較重要的,分是name和type;Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。
	@Autowired是spring的注解,是spring2.5版本引入的,Autowired只根據type進行注入,不會去匹配name。如果涉及到type無法辨別注入對象時,那需要依賴@Qualifier或@Primary注解一起來修飾。

@Component定義其它組件(比如訪問外部服務的組件)
@RequestMapping (value=’’,method={RequestMethod。GET或者POSt})綁定url
@RequestParam (value=’’ required=false)綁定參數,將客戶端請求中的參數值映射到相應方法的參數上;
@ModelAttribute 一般用於controller層,唄注解的方法會在所以mapping執行之前執行,並且可以綁定參數到Model model里面。
@Transactional (readOnly=true)注解式事務
@TransactionalEventListener用於配置事務的回調方法,可以在事務提交前、提交后、完成后以及回滾后幾個階段接受回調事件。
@Value(“${}”)可以注入properties里面的配置項
@ControllerAdvice 是spring3提供的新注解
@ExceptionHandler 如果在controller方法遇到異常,就會調用含有此注解的方法。
@InitBinder 一般用於controller 可以將所以form 講所有傳遞進來的string 進行html編碼,防止xss攻擊,比如可以將字符串類型的日期轉換成date類型
@EnableCaching 注解自動化配置合適的緩存管理器。
@EnableWebSecurity 注解開啟spring security的功能,集成websercrityconfigureadapter。
@SringBootApplication相當於@configuration,@EnableAutoConfiguation @ComponentScan三個注解合用。
@EnableDiscoveryclient 注冊應用為Eureka客戶端應用,以獲得服務發現的能力
@EnableAdminServer 使用admin監控應用。
@EnableEurekaClient配置本應用將使用服務注冊和服務發現,注意:注冊和發現用這個注解。
@EnableEurekaServer 啟動一個服務注冊中心
@EnableHystrix表示啟動斷路器,斷路器依賴於服務注冊和發現。
@HystrixCommand注解方法失敗后,系統將西東切換到fallbackMethod方法執行。指定回調方法
@EnableAutoConfiguration spring boot自動配置,嘗試根據你添加的jar依賴自動配置你的spring應用。
@ComponentScan 表示將該類自動發現並注冊bean 可以自動收集所有的spring組件
@Comfiguration 相當於傳統的xml配置文件
@Import 導入其他配置類
@ImportResource用來 加載xml配置文件
@FeignClient注解中的fallbank屬性指定回調類
@RestController 返回json字符串的數據,直接可以編寫RESTFul的接口;
@CrossOrigin 可以處理跨域請求,讓你能訪問不是一個域的文件;
@ApiOperation 首先@ApiOperation注解不是Spring自帶的,它是是swagger里的注解@ApiOperation是用來構建Api文檔的@ApiOperation(value = “接口說明”, httpMethod = “接口請求方式”, response = “接口返回參數類型”, notes = “接口發布說明”;
@SpringBootApplication  申明讓spring boot自動給程序進行必要的配置,等價於以默認屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan;
@RefreshScope 如果代碼中需要動態刷新配置,在需要的類上加上該注解就行。但某些復雜的注入場景下,這個注解使用不當,配置可能仍然不動態刷新;
@FeignClient springboot調用外部接口:聲明接口之后,在代碼中通過@Resource注入之后即可使用。@FeignClient標簽的常用屬性如下:name:指定FeignClient的名稱,如果項目使用了Ribbon,name屬性會作為微服務的名稱,用於服務發現
url: url一般用於調試,可以手動指定@FeignClient調用的地址decode404:當發生http 404錯誤時,如果該字段位true,會調用decoder進行解碼,否則拋出FeignException
configuration: Feign配置類,可以自定義Feign的Encoder、Decoder、LogLevel、Contractfallback: 定義容錯的處理類,當調用遠程接口失敗或超時時,會調用對應接口的容錯邏輯,fallback指定的類必須實現@FeignClient標記的接口
fallbackFactory: 工廠類,用於生成fallback類示例,通過這個屬性我們可以實現每個接口通用的容錯邏輯,減少重復的代碼path: 定義當前FeignClient的統一前綴
@EnableFeignClients 開啟Spring Cloud Feign的支持
@EnableCircuitBreaker 開啟斷路器功能
@LoadBalanced 開啟客戶端負載均衡
@WebAppConfiguration 開啟Web 應用的配置,用於模擬ServletContext
@RibbonClient,這個注解用來為負載均衡客戶端做一些自定義的配置,可以進一步配置或自定義從哪里獲取服務端列表、負載均衡策略、Ping也就是服務鑒活策略等等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

常用的 lombok 注解:

@EqualsAndHashCode    實現equals()方法和hashCode()方法 @ToString:實現toString()方法 
@Data           注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法 
@Setter          注解在屬性上;為屬性提供 setting 方法 
@Getter          注解在屬性上;為屬性提供 getting 方法 
@Log4j           注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象 
@NoArgsConstructor    注解在類上;為類提供一個無參的構造方法 
@AllArgsConstructor    注解在類上;為類提供一個全參的構造方法 
@Cleanup        關閉流 
@Synchronized:對象同步 
@SneakyThrows:拋出異常
@ConfigurationProperties    把同類的配置信息自動封裝成實體類:可以使屬性文件中的值和類中的屬性對應起來;使用方式有兩種 :  1、在類上使用該注解   2、在工廠方法上使用該注解 (@bean)
注意:在springBoot中除了使用這個注解讀取屬性文件值外,還可以用@Value注解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM