日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

propertysource注解_Java开发必须掌握的 20+ 种 Spring 常用注解

發布時間:2024/7/23 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 propertysource注解_Java开发必须掌握的 20+ 种 Spring 常用注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:IT_faquir

鏈接:https://blog.csdn.net/IT_faquir

注解本身沒有功能的,就和xml一樣。注解和xml都是一種元數據,元數據即解釋數據的數據,這就是所謂配置。

本文主要羅列Spring|SpringMVC相關注解的簡介。


Spring部分

1.聲明bean的注解

  • @Component 組件,沒有明確的角色

  • @Service 在業務邏輯層使用(service層)

  • @Repository 在數據訪問層使用(dao層)

  • @Controller 在展現層使用,控制器的聲明(C)

2.注入bean的注解

  • @Autowired:由Spring提供

  • @Inject:由JSR-330提供

  • @Resource:由JSR-250提供

都可以注解在set方法和屬性上,推薦注解在屬性上(一目了然,少寫代碼)。

3.java配置類相關注解

  • @Configuration 聲明當前類為配置類,相當于xml形式的Spring配置(類上)

  • @Bean 注解在方法上,聲明當前方法的返回值為一個bean,替代xml中的方式(方法上)

  • @Configuration 聲明當前類為配置類,其中內部組合了@Component注解,表明這個類是一個bean(類上)

  • @ComponentScan 用于對Component進行掃描,相當于xml中的(類上)

  • @WishlyConfiguration 為@Configuration與@ComponentScan的組合注解,可以替代這兩個注解

4.切面(AOP)相關注解

Spring支持AspectJ的注解式切面編程。

@Aspect 聲明一個切面(類上)

使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作為參數。

  • @After 在方法執行之后執行(方法上)

  • @Before 在方法執行之前執行(方法上)

  • @Around 在方法執行之前與之后執行(方法上)

@PointCut 聲明切點

在java配置類中使用@EnableAspectJAutoProxy注解開啟Spring對AspectJ代理的支持(類上)

5.@Bean的屬性支持

@Scope 設置Spring容器如何新建Bean實例(方法上,得有@Bean)

其設置類型包括:

  • Singleton (單例,一個Spring容器中只有一個bean實例,默認模式),

  • Protetype (每次調用新建一個bean),

  • Request (web項目中,給每個http request新建一個bean),

  • Session (web項目中,給每個http session新建一個bean),

  • GlobalSession(給每一個 global http session新建一個Bean實例)

@StepScope 在Spring Batch中還有涉及

@PostConstruct 由JSR-250提供,在構造函數執行完之后執行,等價于xml配置文件中bean的initMethod

@PreDestory 由JSR-250提供,在Bean銷毀之前執行,等價于xml配置文件中bean的destroyMethod

6.@Value注解

@Value 為屬性注入值(屬性上)

支持如下方式的注入:

注入普通字符

@Value("Michael?Jackson")
String?name;

注入操作系統屬性

@Value("#{systemProperties['os.name']}")
String?osName;

注入表達式結果

@Value("#{?T(java.lang.Math).random()?*?100?}")
String?randomNumber;

注入其它bean屬性

@Value("#{domeClass.name}")
String?name;

注入文件資源

@Value("classpath:com/hgs/hello/test.txt")
String?Resource?file;

注入網站資源

@Value("http://www.cznovel.com")
Resource?url;12

注入配置文件

@Value("${book.name}")
String?bookName;

注入配置使用方法:

① 編寫配置文件(test.properties)

book.name=《三體》

② @PropertySource 加載配置文件(類上)

@PropertySource("classpath:com/hgs/hello/test/test.propertie")

③ 還需配置一個PropertySourcesPlaceholderConfigurer的bean。

7.環境切換

@Profile 通過設定Environment的ActiveProfiles來設定當前context需要使用的配置環境。(類或方法上)

@Conditional Spring4中可以使用此注解定義條件話的bean,通過實現Condition接口,并重寫matches方法,從而決定該bean是否被實例化。(方法上)

8.異步相關

@EnableAsync 配置類中,通過此注解開啟對異步任務的支持,敘事性AsyncConfigurer接口(類上)

@Async 在實際執行的bean方法使用該注解來申明其是一個異步任務(方法上或類上所有的方法都將異步,需要@EnableAsync開啟異步任務)

9.定時任務相關

@EnableScheduling 在配置類上使用,開啟計劃任務的支持(類上)

@Scheduled 來申明這是一個任務,包括cron,fixDelay,fixRate等類型(方法上,需先開啟計劃任務的支持)

10.@Enable*注解說明

這些注解主要用來開啟對xxx的支持。

  • @EnableAspectJAutoProxy 開啟對AspectJ自動代理的支持

  • @EnableAsync 開啟異步方法的支持

  • @EnableScheduling 開啟計劃任務的支持

  • @EnableWebMvc 開啟Web MVC的配置支持

  • @EnableConfigurationProperties 開啟對@ConfigurationProperties注解配置Bean的支持

  • @EnableJpaRepositories 開啟對SpringData JPA Repository的支持

  • @EnableTransactionManagement 開啟注解式事務的支持

  • @EnableTransactionManagement 開啟注解式事務的支持

  • @EnableCaching 開啟注解式的緩存支持

11.測試相關注解

@RunWith 運行器,Spring中通常用于對JUnit的支持

@RunWith(SpringJUnit4ClassRunner.class)1

@ContextConfiguration 用來加載配置ApplicationContext,其中classes屬性用來加載配置類

@ContextConfiguration(classes={TestConfig.class})1

SpringMVC部分

@EnableWebMvc 在配置類中開啟Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若無此句,重寫WebMvcConfigurerAdapter方法(用于對SpringMVC的配置)。

@Controller 聲明該類為SpringMVC中的Controller

@RequestMapping 用于映射Web請求,包括訪問路徑和參數(類或方法上)

@ResponseBody 支持將返回值放在response內,而不是一個頁面,通常用戶返回json數據(返回值旁或方法上)

@RequestBody 允許request的參數在request體中,而不是在直接連接在地址后面。(放在參數前)

@PathVariable 用于接收路徑參數,比如@RequestMapping(“/hello/{name}”)申明的路徑,將注解放在參數中前,即可獲取該值,通常作為Restful的接口實現方法。

@RestController 該注解為一個組合注解,相當于@Controller和@ResponseBody的組合,注解在類上,意味著,該Controller的所有方法都默認加上了@ResponseBody。

@ControllerAdvice 通過該注解,我們可以將對于控制器的全局配置放置在同一個位置,注解了@Controller的類的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,
這對所有注解了 @RequestMapping的控制器內的方法有效。

@ExceptionHandler 用于全局處理控制器里的異常

@InitBinder 用來設置WebDataBinder,WebDataBinder用來自動綁定前臺請求參數到Model中。

@ModelAttribute 本來的作用是綁定鍵值對到Model里,在@ControllerAdvice中是讓全局的@RequestMapping都能獲得在此處設置的鍵值對。

如有遺漏或有誤的地方,希望幫忙指出。

總結

以上是生活随笔為你收集整理的propertysource注解_Java开发必须掌握的 20+ 种 Spring 常用注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。