java - 有没有一种方法可以仅使用注释从同一个类声明两个 spring bean 实例?

标签 java spring annotations

我通常使用 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/

相关文章:

java - 如何在javafx中循环播放MP3文件?

java - org.springframework.web.servlet.PageNotFound noHandlerFound - 未找到具有 URI 的 HTTP 请求的映射

java - hibernate中的注释是hibernate还是java持久化API?

java - Hikari 连接不可用和意外的多池问题

java - 什么是依赖注入(inject)和 Spring 框架?

java - 为@Column 定义全局设置默认值 'nullable=false'

ios - 将注释应用于 map 工具包

java - @RolesAllowed 无法正常工作

java - 用 Java 构建的应用程序的堆大小应该是多少?

java - 找不到与名称匹配的资源 - Android Studio