Spring 的@Bean
的作用如下。
Spring 的@Bean
通常宣告在掛有@Configuration
的Spring配置類別中的方法前,例如
@Configuration
public class AppConfig {
@Bean
public BookingService bookingService() {
return new BookingServiceImpl(bookingDao());
}
@Bean
public BookingDao bookingDao() {
return new BookingDaoImpl(sessionFactory);
}
}
在配置類中掛有@Bean
的方法所回傳的實例即為被Spring IoC容器管理的bean,作用與在xml配置檔中的<bean>
相同。
不過一般在沒有特殊需求的情況下都會使用@ComponentScan
掃描指定package中掛有@Component
的類別來自動註冊為bean。
而會使用@Bean
的時機為,當要被註冊為bean的類別建構步驟或邏輯比較複雜,此時就需要@Bean
讓你可以在構造bean的方法內撰寫構造的詳細邏輯,而@ComponentScan
就無法滿足比較細微的配置。
喜歡這篇~
回覆刪除