我通常使用 XML Spring 配置 (spring-conf.xml) 这样做:
<beans>
<context:component-scan base-package="org.company.dept.business" />
...
<bean id="myServiceB2B" class="org.company.dept.business.service.MyService"
p:configLocation="WEB-INF/classes/b2b.properties" />
<bean id="myServiceResidential" class="org.company.dept.business.service.MyService"
p:configLocation="WEB-INF/classes/residential.properties" />
...
</beans>
因为类 MyService 只有一个文件(定义),有没有办法在不使用 XML Spring 配置的情况下实例化这两个 bean?
我对 XML 定义没意见,但我总是尽量减少我的 XML 配置。
最佳答案
以同样的方式使用 2 <bean>
XML 中的声明,您使用 2 @Bean
Java 配置中的注释类。
@Configuration
public class MyConfiguration {
@Bean(name = "firstService")
public MyService myService1() {
return new MyService();
}
@Bean(name = "secondService")
public MyService myService2() {
return new MyService();
}
}
我不知道 configLocation
是什么是为了,但您绝对可以将其包含在 Java 配置中。
name
@Bean
的属性相当于 id
<bean>
的属性.
关于java - 有没有一种方法可以仅使用注释从同一个类声明两个 spring bean 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697437/