spring - 如何在同一个 bean 中 Autowiring bean

标签 spring dependency-injection

我想将 bean A 的实例 Autowiring 到 A 的同一个实例。如何通过注释(不使用 XML)实现此目的。

示例:

@Service
public class A {

    @Autowire
    A a;

}

我也尝试过

@Service
public class A {

    A a;

    @Autowired
    public void setA(final A a) {
        this.a = a;
    }

}

但它也不起作用:-/

使用 XML 进行配置

<bean id="a" class="A">
    <property name="a" ref="a" />
</bean>

工作正常。而且还可以使用

@Service
public class A implements InitializingBean {

    A a;

    @Autowired
    ApplicationContext ctx;

    @Override
    public void afterPropertiesSet() throws Exception {
        a = ctx.getBean(A.class);
    }

}

但这很麻烦。奇怪的是,Spring 在使用 XML 配置时可以处理这个问题,但在使用基于注释的配置时却不能。

最佳答案

@Autowired 在查找 Autowiring 候选项时跳过带注释的 bean,而是使用 @Resource

关于spring - 如何在同一个 bean 中 Autowiring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279228/

相关文章:

ios - 台风 - 到处注入(inject)相同的实例

c# - 替换 ASP.NET Core 内置 DI 容器中的服务注册?

php - TYPO3:使用构造函数将服务类注入(inject) AuthServiceClass

asp.net-mvc - 授权和温莎

java - 使用java中的http header 在spring security中传递基本身份验证详细信息

java - 是否可以将我的模拟的依赖项注入(inject)到属于不同包的类中?

java - Spring Controller中的init方法(注解版)

java - 如何 EasyMock 对返回通配符泛型的方法的调用?

Spring Security 3 获取初始请求的 URL

java - 如何在Spring Security认证登录中获取用户输入的用户名和密码值