Spring Boot - bean定义

时间:2016-05-13 20:38:15

标签: spring spring-boot

我正在考虑将Spring Boot用于新应用程序,但我无法找到创建应用程序bean的最佳方法。

在高级别,这将是一个Web应用程序,可以有一个或多个相同类型的bean - 每个bean具有不同的属性值。如果我需要添加一个相同类型的新bean,我只需要配置它。通常,如果我使用的是Spring MVC,我只需在应用程序上下文中定义每个bean,并通过上下文文件加载属性值。 Spring Boot更喜欢废除xml配置,但我不确定如何将bean定义转换为Spring Boot解决方案。我如何使用Spring Boot继续利用IoC。

2 个答案:

答案 0 :(得分:3)

实际上这与Spring Boot无关。如前所述,它支持Java和XML bean配置。

您可以使用Java配置轻松地从同一个类创建多个bean。

XML配置如:

<bean id="first" class="com.foo.MyClass" />

<bean id="second" class="com.foo.MyClass" />

翻译成:

@Configuration
class MyConfiguration {

    @Bean
    MyClass first() {
        return new MyClass();
    }

    @Bean
    MyClass second() {
        return new MyClass();
    }
}

答案 1 :(得分:2)

对于Maciej Walkowiak的回答,我们也建议这样写:

@Configuration
class MyConfiguration {

    @Bean
    @Qualifier("first")
    MyClass first() {
        return new MyClass();
    }

    @Bean
    @Qualifier("second")
    MyClass second() {
        return new MyClass();
    }
}

然后当你自动装配时,你可以使用:

@Autowired 
@Qualifier("second")
private MyClass myClass;