【问题标题】:How to refer a bean declared in spring context xml from an annotated class spring如何从带注释的类spring中引用在spring上下文xml中声明的bean
【发布时间】:2015-02-06 12:00:41
【问题描述】:

例子:

弹簧上下文 xml

<beans>
<bean id="a" class="ClassA" />
</beans>

@服务 公共类测试 {

@Resource InterfaceA ifcA;

}

公共类 ClassA 实现 InterfaceA { }

公共接口接口A { }


我想知道如何从启用了注释的 java 类中引用在 xml 中声明的 xml bean。

我知道的一种方法是获取上下文,然后获取 bean。

请提出建议。

【问题讨论】:

    标签: xml spring annotations


    【解决方案1】:

    您的代码应该开箱即用,因为 Spring 也会处理 @Resource 注释。它通过请求的类型查找相应的 bean(这就是为什么它被称为“按类型自动装配”)。

    您也可以在ifcA 变量中使用@Resource(name="a")@Autowired @Qualifier("A") 指定bean 的名称。由于在这里指定了bean的名称,所以称为“按名称自动装配”。

    【讨论】:

    • 感谢您的回答。它有帮助。
    【解决方案2】:

    在你的注释类中,声明这个

    @Autowired InterfaceA ifcA;
    

    Spring 将自动填充适当的 bean 实例。

    【讨论】:

    • 所以我不需要用 @Component/@Service 正确地注释实现,即 ClassA,因为它已经在 xml 中提到了。
    • 没错。 ClassA 不需要任何类型级别的注释,只要它像你正在做的那样在上下文 xml 中实例化。
    • 顺便说一句,你是如何实例化 Test 类的?
    • 我正在迁移基于注解的依赖注入 xml。我想在 xml 中使用 并删除所有 bean 定义。
    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 2019-02-27
    相关资源
    最近更新 更多