1. 程式人生 > >Java 必須掌握的 12 種 Spring 常用註解!(一)

Java 必須掌握的 12 種 Spring 常用註解!(一)

1.宣告bean的註解:

  • @Component 元件,沒有明確的角色
  • @Service 在業務邏輯層使用(service層)
  • @Repository 在資料訪問層使用(dao層)
  • @Controller 在展現層使用,控制器的宣告(Controller層)

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代理的支援(類上)

[email protected]的屬性支援

  • @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

[email protected]註解

          @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;

                      注入配置檔案

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

注入配置使用方法:  ① 編寫配置檔案(test.properties)

book.name=《三體》

② @PropertySource 載入配置檔案(類上)

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

③ 還需配置一個PropertySourcesPlaceholderConfigurer的bean。

後續需更新。。。。