Java開(kāi)發(fā)者要掌握的20個(gè)Spring常用注解分別是什么,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
新鄉(xiāng)網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
注解本身沒(méi)有功能的,就和 xml 一樣。注解和 xml 都是一種元數(shù)據(jù),元數(shù)據(jù)即解釋數(shù)據(jù)的數(shù)據(jù),這就是所謂配置。
下面主要羅列 Spring|Spring MVC相關(guān)注解的簡(jiǎn)介。
Spring部分
1、聲明bean的注解
@Component 組件,沒(méi)有明確的角色
@Service 在業(yè)務(wù)邏輯層使用(service層)
@Repository 在數(shù)據(jù)訪問(wèn)層使用(dao層)
@Controller 在展現(xiàn)層使用,控制器的聲明(C)
2、注入bean的注解
@Autowired:由Spring提供
@Inject:由JSR-330提供
@Resource:由JSR-250提供
都可以注解在set方法和屬性上,推薦注解在屬性上(一目了然,少寫(xiě)代碼)。
3、java配置類相關(guān)注解
@Configuration 聲明當(dāng)前類為配置類,相當(dāng)于xml形式的Spring配置(類上)
@Bean 注解在方法上,聲明當(dāng)前方法的返回值為一個(gè)bean,替代xml中的方式(方法上)
@Configuration 聲明當(dāng)前類為配置類,其中內(nèi)部組合了@Component注解,表明這個(gè)類是一個(gè)bean(類上)
@ComponentScan 用于對(duì)Component進(jìn)行掃描,相當(dāng)于xml中的(類上)
@WishlyConfiguration 為@Configuration與@ComponentScan的組合注解,可以替代這兩個(gè)注解
4、切面(AOP)相關(guān)注解
Spring支持AspectJ的注解式切面編程。
@Aspect 聲明一個(gè)切面(類上)
使用@After、@Before、@Around定義建言(advice),可直接將攔截規(guī)則(切點(diǎn))作為參數(shù)。
@After 在方法執(zhí)行之后執(zhí)行(方法上)
@Before 在方法執(zhí)行之前執(zhí)行(方法上)
@Around 在方法執(zhí)行之前與之后執(zhí)行(方法上)
@PointCut 聲明切點(diǎn)
在java配置類中使用@EnableAspectJAutoProxy注解開(kāi)啟Spring對(duì)AspectJ代理的支持(類上)
5、@Bean的屬性支持
@Scope 設(shè)置Spring容器如何新建Bean實(shí)例(方法上,得有@Bean)
其設(shè)置類型包括:
Singleton (單例,一個(gè)Spring容器中只有一個(gè)bean實(shí)例,默認(rèn)模式),
Protetype (每次調(diào)用新建一個(gè)bean),
Request (web項(xiàng)目中,給每個(gè)http request新建一個(gè)bean),
Session (web項(xiàng)目中,給每個(gè)http session新建一個(gè)bean),
GlobalSession(給每一個(gè) global http session新建一個(gè)Bean實(shí)例)
@StepScope 在Spring Batch中還有涉及
@PostConstruct 由JSR-250提供,在構(gòu)造函數(shù)執(zhí)行完之后執(zhí)行,等價(jià)于xml配置文件中bean的initMethod
@PreDestory 由JSR-250提供,在Bean銷毀之前執(zhí)行,等價(jià)于xml配置文件中bean的destroyMethod
6、@Value注解
@Value 為屬性注入值(屬性上)
支持如下方式的注入:
》注入普通字符
》注入操作系統(tǒng)屬性
》注入表達(dá)式結(jié)果
》注入其它bean屬性
》注入文件資源
》注入網(wǎng)站資源
》注入配置文件
注入配置使用方法:
① 編寫(xiě)配置文件(test.properties)
book.name=《三體》
② @PropertySource 加載配置文件(類上)
③ 還需配置一個(gè)PropertySourcesPlaceholderConfigurer的bean。
7、環(huán)境切換
@Profile 通過(guò)設(shè)定Environment的ActiveProfiles來(lái)設(shè)定當(dāng)前context需要使用的配置環(huán)境。(類或方法上)
@Conditional Spring4中可以使用此注解定義條件話的bean,通過(guò)實(shí)現(xiàn)Condition接口,并重寫(xiě)matches方法,從而決定該bean是否被實(shí)例化。(方法上)
8、異步相關(guān)
@EnableAsync 配置類中,通過(guò)此注解開(kāi)啟對(duì)異步任務(wù)的支持,敘事性AsyncConfigurer接口(類上)
@Async 在實(shí)際執(zhí)行的bean方法使用該注解來(lái)申明其是一個(gè)異步任務(wù)(方法上或類上所有的方法都將異步,需要@EnableAsync開(kāi)啟異步任務(wù))
9、定時(shí)任務(wù)相關(guān)
@EnableScheduling 在配置類上使用,開(kāi)啟計(jì)劃任務(wù)的支持(類上)
@Scheduled 來(lái)申明這是一個(gè)任務(wù),包括cron,fixDelay,fixRate等類型(方法上,需先開(kāi)啟計(jì)劃任務(wù)的支持)
10、@Enable*注解說(shuō)明
這些注解主要用來(lái)開(kāi)啟對(duì)xxx的支持。
@EnableAspectJAutoProxy 開(kāi)啟對(duì)AspectJ自動(dòng)代理的支持
@EnableAsync 開(kāi)啟異步方法的支持
@EnableScheduling 開(kāi)啟計(jì)劃任務(wù)的支持
@EnableWebMvc 開(kāi)啟Web MVC的配置支持
@EnableConfigurationProperties 開(kāi)啟對(duì)@ConfigurationProperties注解配置Bean的支持
@EnableJpaRepositories 開(kāi)啟對(duì)SpringData JPA Repository的支持
@EnableTransactionManagement 開(kāi)啟注解式事務(wù)的支持
@EnableTransactionManagement 開(kāi)啟注解式事務(wù)的支持
@EnableCaching 開(kāi)啟注解式的緩存支持
11、測(cè)試相關(guān)注解
@RunWith 運(yùn)行器,Spring中通常用于對(duì)JUnit的支持
@ContextConfiguration 用來(lái)加載配置ApplicationContext,其中classes屬性用來(lái)加載配置類
SpringMVC部分
@EnableWebMvc 在配置類中開(kāi)啟Web MVC的配置支持,如一些ViewResolver或者M(jìn)essageConverter等,若無(wú)此句,重寫(xiě)WebMvcConfigurerAdapter方法(用于對(duì)SpringMVC的配置)。
@Controller 聲明該類為SpringMVC中的Controller
@RequestMapping 用于映射Web請(qǐng)求,包括訪問(wèn)路徑和參數(shù)(類或方法上)
@ResponseBody 支持將返回值放在response內(nèi),而不是一個(gè)頁(yè)面,通常用戶返回json數(shù)據(jù)(返回值旁或方法上)
@RequestBody 允許request的參數(shù)在request體中,而不是在直接連接在地址后面。(放在參數(shù)前)
@PathVariable 用于接收路徑參數(shù),比如@RequestMapping(“/hello/{name}”)申明的路徑,將注解放在參數(shù)中前,即可獲取該值,通常作為Restful的接口實(shí)現(xiàn)方法。
@RestController 該注解為一個(gè)組合注解,相當(dāng)于@Controller和@ResponseBody的組合,注解在類上,意味著,該Controller的所有方法都默認(rèn)加上了@ResponseBody。
@ControllerAdvice 通過(guò)該注解,我們可以將對(duì)于控制器的全局配置放置在同一個(gè)位置,注解了@Controller的類的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,
這對(duì)所有注解了 @RequestMapping的控制器內(nèi)的方法有效。
@ExceptionHandler 用于全局處理控制器里的異常
@InitBinder 用來(lái)設(shè)置WebDataBinder,WebDataBinder用來(lái)自動(dòng)綁定前臺(tái)請(qǐng)求參數(shù)到Model中。
@ModelAttribute 本來(lái)的作用是綁定鍵值對(duì)到Model里,在@ControllerAdvice中是讓全局的@RequestMapping都能獲得在此處設(shè)置的鍵值對(duì)。
關(guān)于Java開(kāi)發(fā)者要掌握的20個(gè)Spring常用注解分別是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
當(dāng)前文章:Java開(kāi)發(fā)者要掌握的20個(gè)Spring常用注解分別是什么
當(dāng)前路徑:http://sd-ha.com/article32/gpsdpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、Google、App開(kāi)發(fā)、虛擬主機(jī)、全網(wǎng)營(yíng)銷推廣、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)