如何将@autowire转换为jsf托管bean

时间:2010-12-15 21:41:39

标签: spring jsf ioc-container autowired

为了使用@Autowire注释,使用注释的对象必须来自spring上下文。

JSF托管bean是由JSF的IOC not Springs创建的,因此我不能使用@Autowire,必须使用faces-config.xml和托管属性。

我已经设置了一个EL解析器,让我们可以将spring bean作为托管属性,我想更进一步,并且每次需要自动装配时都不需要进入faces-config.xml。这可能吗?

2 个答案:

答案 0 :(得分:12)

使用@Controller(或@Component)和@Scope("request")(或session)注释您的托管bean并添加<context:component-scan>(如果您还没有),托管bean将自动检测为spring bean。既然你已经在使用ELResolver,那应该是它 - 你应该能够使用@Autowired(或更好 - @Inject,如果使用spring 3.0)。

答案 1 :(得分:4)

你可以使用 @ManagedProperty(#{'someBean'})来自动装配jsf bean中的其他bean