@Configuration, @Bean 注解的作用

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


 

猜你喜欢

转载自blog.csdn.net/beguile/article/details/87209419