@Configuration, @Bean 註解的作用

guile發表於2019-02-13

@Configuration 可理解為用 spring 的時候 xml 裡面的 <beans> 標籤
@Bean 可理解為用 spring 的時候 xml 裡面的 <bean> 標籤
SpringBoot 專案需要保證啟動 SpringBoot 的 main 入口類在加了 @Configuration,@Bean 類的上層包就行


而如果是 spring 專案,就需要掃描包 <context:component-scan base-package="com.xxx.xxx" />,才能使用註解

 

@Bean 定義的實體類在 spring 容器管理中是單例的,但並不保證在 jvm 是單例的

 

@Bean 有一個 name 屬性,可以用來區分兩個相同(部分屬性不一樣)的 bean。

例如,定義多資料來源:

@Bean(name = "db1")
    public InfluxDB influxDB1(){
    InfluxDB influxDB = InfluxDBFactory.connect("http://localhost:8086");
    influxDB.setDatabase("db1")
    return influxDB;
}

@Bean(name = "db2")
    public InfluxDB influxDB1(){
    InfluxDB influxDB = InfluxDBFactory.connect("http://localhost:8089");
    influxDB.setDatabase("db2")
    return influxDB;
}

 

呼叫方式:

@Resource(name = "db1")
private InfluxDB db1;

@Resource(name = "db2")
private InfluxDB db2;


 

相關文章