網頁

2019/5/14

Spring @Bean的作用

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就無法滿足比較細微的配置。


1 則留言: