spring-cloud開發常用注解

      網友投稿 1114 2022-05-30

      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 如果代碼中需要動態刷新配置,在需要的類上加上該注解就行。但某些復雜的注入場景下,這個注解使用不當,配置可能仍然不動態刷新;

      spring-cloud開發常用注解

      @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也就是服務鑒活策略等等

      @PathVariable ? 獲取參數。

      @JsonBackReference ?解決嵌套外鏈問題。

      @RepositoryRestResourcepublic ?配合spring-boot-starter-data-rest使用

      常用的 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注解。

      JPA注解:

      1、@Entity:@Table(name=”“):表明這是一個實體類。一般用于jpa這兩個注解一般一塊使用,但是如果表名和實體類名相同的話,@Table可以省略。

      2、@MappedSuperClass:用在確定是父類的entity上。父類的屬性子類可以繼承。

      3、@NoRepositoryBean:一般用作父類的repository,有這個注解,Spring不會去實例化該repository。

      4、@Column:如果字段名與列名相同,則可以省略。

      5、@Id:表示該屬性為主鍵。

      6、@GeneratedValue(strategy=GenerationType.SEQUENCE,generator= ? ?“repair_seq”):表示主鍵生成策略是sequence ?(可以為Auto、IDENTITY、native等,Auto表示可在多個數據庫間切換),指定sequence的名字是repair_seq。

      7、@SequenceGeneretor(name = “repair_seq”, sequenceName = ? ?“seq_repair”, allocationSize =

      1):name為sequence的名稱,以便使用,sequenceName為數據庫的sequence名稱,兩個名稱可以一致。

      8、@Transient:表示該屬性并非一個到數據庫表的字段的映射,ORM框架將忽略該屬性。

      如果一個屬性并非數據庫表的字段映射,就務必將其標示為@Transient,否則,ORM框架默認其注解為@Basic。

      9、@Basic(fetch=FetchType.LAZY):標記可以指定實體屬性的加載方式。

      10、@JsonIgnore:作用是json序列化時將Java bean中的一些屬性忽略掉,序列化和反序列化都受影響。

      11、@JoinColumn(name=”loginId”):一對一:本表中指向另一個表的外鍵。一對多:另一個表指向本表的外鍵。

      12、@OneToOne、@OneToMany、@ManyToOne:對應hibernate配置文件中的一對一,一對多,多對一。

      Java Spring

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何制作加粗的邊框表格?
      下一篇:【活動結束】【內容共創系列】1024,懂你所需,予你溫暖,致敬新時代可愛的程序員們
      相關文章
      亚洲免费日韩无码系列| 91精品国产亚洲爽啪在线观看| 亚洲国产精品一区第二页| 国产亚洲视频在线播放大全| 亚洲1234区乱码| 亚洲激情校园春色| 亚洲首页在线观看| 亚洲五月六月丁香激情| 亚洲成人精品久久| 亚洲Av熟妇高潮30p| 国产l精品国产亚洲区在线观看| 国产成人亚洲综合| 亚洲精品成人网久久久久久| 亚洲精品无码mⅴ在线观看| 亚洲精品无码专区在线播放| 亚洲天然素人无码专区| 亚洲sm另类一区二区三区| 亚洲欧美在线x视频| 朝桐光亚洲专区在线中文字幕| 久久久久亚洲AV无码去区首| 精品韩国亚洲av无码不卡区| 日本亚洲高清乱码中文在线观看| 自拍偷自拍亚洲精品偷一| 一本久到久久亚洲综合| 亚洲精品97久久中文字幕无码| 亚洲XX00视频| 77777亚洲午夜久久多人| 亚洲国产另类久久久精品黑人| 久久久综合亚洲色一区二区三区| 亚洲国产成人久久综合碰碰动漫3d | 国产成人精品日本亚洲网址| 亚洲午夜精品久久久久久app| 亚洲AV成人一区二区三区观看 | 国产av无码专区亚洲av毛片搜| 国产精品亚洲色图| 日韩精品亚洲aⅴ在线影院| 亚洲毛片αv无线播放一区| 亚洲一区二区三区首页| 亚洲三级视频在线| 国产成人人综合亚洲欧美丁香花| 国产亚洲精品高清在线|