springcloud一些常用注解整理

前言

? ? ? ? 最近學(xué)到springcloud,里面涉及到許多注解,除了一些常用的注解,大部分都是一知半解,這篇文章主要是整理一下這些注解方便后面忘了時可以回顧。

? ? ? ? 首先,先明確一下springcloud是什么?spring框架在開發(fā)中有效整合了多方資源,使用依賴注入對對象有效管理,面向切面編程的實現(xiàn)對項目模塊松耦合有著不錯的效果,可以說spring框架在現(xiàn)下已是一個java程序員必不可缺的一門功課。而由spring衍生的springboot是spring快速配置腳手架,可以幫助我們快速的開發(fā)單一的微服務(wù)。springcloud則是對這些微服務(wù)的治理的一套分布式服務(wù)框架,用于管理微服務(wù)。

常見注解總結(jié)

? ? 組件注解

????????@Controller 控制層, @Service 業(yè)務(wù)層,@Repository 展示層,以及一個通用的@Component。在類前面加這些注解后可以將他們納入spring容器的管理,便于后續(xù)的維護。@Controller后續(xù)還有@RestController,與@Controller無太大不同,區(qū)別是@RestController返回前端的格式是json,而@Controller返回的是model。

? ? 注入注解

????????@Autowired自動注入和@Resource bean注入。兩者都可以作為注入屬性的修飾,在接口僅有單一實現(xiàn)類時,兩個注解的修飾效果相同,可以互相替換,不影響使用。

????????@Resource是Java自己的注解,@Resource有兩個屬性是比較重要的,分是name和type;Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。

????????@Autowired是spring的注解,是spring2.5版本引入的,Autowired只根據(jù)type進行注入,不會去匹配name。如果涉及到type無法辨別注入對象時,那需要依賴@Qualifier或@Primary注解一起來修飾。

? ? 請求相關(guān)注解

????????@RequestMapping和@RequestParam注解,前者綁定url,后者綁定參數(shù)。當客戶端傳來請求時,請求url與請求方式method和@RequestMapping匹配,傳上來的參數(shù)由@RequestParam進行接收,映射到方法參數(shù)中。

? ? 事務(wù)注解

????????@Transactional與@TransactionalEventListener,前者為一些使用多條sql語句操作添加事務(wù)注解,保證數(shù)據(jù)庫的一致性,不會有臟數(shù)據(jù)入庫,后者是事務(wù)事件控制,比如可以在注冊事務(wù)后發(fā)送注冊成功郵件。

? ? 啟動器注解

? ??????@SpringBootApplication,申明讓spring boot自動給程序進行必要的配置,等價于以默認屬性使用@Configuration配置spring,@EnableAutoConfiguration開啟自動配置和@ComponentScan自動掃描。

? ? Eureka注冊中心相關(guān)注解

? ??????@EnableEurekaServer 啟動一個服務(wù)注冊中心;@EnableDiscoveryclient 注冊應(yīng)用為Eureka客戶端應(yīng)用,以獲得服務(wù)發(fā)現(xiàn)的能力。這兩個都是加載啟動器上,聲明為注冊中心還是注冊中心注冊的其他服務(wù)。

? ? 配置中心相關(guān)注解

? ??????@EnableConfigServer 開啟配置服務(wù),在配置中心啟動器上申明;@RefreshScope 刷新配置文件,在配置文件交由配置中心管理的服務(wù)的控制器上申明。

? ? 其他注解

? ??????@Value(“${}”)可以注入配置文件里面的內(nèi)容,如yml文件下自定義test下的name屬性可以使用@Value("${test.name}")注解獲取。

常用的 lombok 注解

? ??@Data 注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法

? ??@Log4j? 注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容