2010-12-15 88 views
6

Pour utiliser l'annotation @Autowire, l'objet dans lequel vous utilisez l'annotation doit provenir du contexte printanier.Comment @autowire dans les beans gérés jsf

Les beans gérés JSF sont créés par IOC de JSF et non Springs, par conséquent, je ne peux pas utiliser @Autowire à l'intérieur de ceux-ci doit utiliser faces-config.xml et les propriétés gérées. J'ai déjà installé un résolveur EL qui permet d'avoir des haricots de printemps comme propriétés gérées, je veux aller plus loin et me débarrasser de la nécessité d'aller dans le faces-config.xml chaque fois que j'ai besoin d'autowire quelque chose . Est-ce possible?

Répondre

11

Juste annoter vos haricots gérés avec @Controller (ou @Component), et @Scope("request") (ou session) et ajouter <context:component-scan> (si vous avez pas), et les haricots gérés seront automatiquement détectés comme des grains de printemps. Et puisque vous utilisez déjà l'ELResolver, cela devrait l'être - vous devriez pouvoir utiliser @Autowired (ou mieux - @Inject, si vous utilisez le ressort 3.0).

+0

vous dites que je devrais enlever les haricots gérés de faces-config.xml complètement? – mkoryak

+0

@mkoryak - oui. – Bozho

+1

@Bozho qu'en est-il dans JSF 2 la nouvelle portée de vue est vraiment utile le printemps vient avec cette portée pour les haricots ?? – Necronet

3

Vous pouvez utiliser @ManagedProperty (# { 'someBean'}) pour autowire autres haricots haricots jsf