2

Bean A のインスタンスを 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 構成を使用する場合はこれを処理できますが、注釈ベースの構成を使用する場合は処理できません。

4

3 に答える 3

4

@Autowiredオートワイヤー候補を探すときに注釈付き Bean をスキップし、@Resource代わりに使用します。

于 2013-06-24T17:03:34.540 に答える