为了使用@Autowire注释,使用注释的对象必须来自spring上下文。
JSF托管bean是由JSF的IOC not Springs创建的,因此我不能使用@Autowire,必须使用faces-config.xml和托管属性。
我已经设置了一个EL解析器,让我们可以将spring bean作为托管属性,我想更进一步,并且每次需要自动装配时都不需要进入faces-config.xml。这可能吗?
答案 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