Permettra À L'Autowiring Non Géré Haricots Annotée Avec @Composant

Je veux utiliser @Autocâblés à injecter un non-managed bean configuré avec @Composant dans un managed bean. Je suis sûr que j'ai la configuration de la droite, mais pour une raison que je reçois de l'exception:

No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean

Fondée sur l'erreur, j'imagine qu'il n'est pas en mesure de trouver le Baz classe, mais je ne sais pas pourquoi. C'est ma compréhension du contexte:printemps-configuré élément dans le fichier XML de config était censé me permettre de le faire. J'ai aussi fait en sorte d'inclure les fichiers jar (spring-weaving.jar et aspectjweaver.jar).

Voici un exemple simple de mon set up.

Mon XML de config:

<beans ...>
    ...

    <context:annotation-config/>
    <context:spring-configured/>
    <context:component-scan base-package="foo"/>

    <bean id="bar" class="foo.Bar"/>
    ...
</beans>

J'ai un managed bean:

package foo;

public class Bar {

    @Autowired
    private Baz baz;

    public void setBaz(Baz baz) {
        this.baz = baz;
    }

    ...
}

Et un non géré bean:

package foo;

@Component
public class Baz {
    ...
}

Est-il quelque chose que je suis absent?

MODIFIER: Le journal répertorie les fèves de son instanciation, et foo.Baz n'est pas l'un d'eux. Je ne sais pas pourquoi elle n'est pas ramasser le @Composante annoté de la classe.

Quelle est la journalisation dire? Est-il mentionner qu'il est auto-détection de haricots dans le paquet foo? La journalisation de débogage doit dire @Composante de haricots ont été trouvés.
Par ailleurs, le aspectj/tissage/printemps-configuré tout ça n'est pas nécessaire pour ce que vous voulez faire. C'est juste de base permettra à l'autowiring.

OriginalL'auteur Alex Beardsley | 2009-06-16