如何清晰地将Spring 3 Bean注入到JSF 2托管Bean中?

3

我正在将我们当前的解决方案从JSF 1.2迁移到JSF 2。由于需要使用新的View scope,因此我正在使用JSF 2注释。这迫使我使用JSF @ManagedProperty注释来注入Spring bean,而不是Spring的@Autowired。

在此之前,代码大概长这样:

@Autowired private OneService oneService

现在就像这样:

@ManagedProperty(value="#{oneServiceImpl}")
private OneService oneService

你知道有没有一种方法可以在不需要声明Bean名称的情况下注释管理属性吗?
谢谢!
2个回答

2
没有。JSF使用表达式语言(EL)来确定你所引用的类的名称。它使用一个名为ELResolver的类来获取传递的字符串,解释并进行适当的引用。SpringBeanFacesELResolver类提供了两个框架之间的集成,拦截请求并将其传递给Spring上下文,该上下文处理所需的依赖项以提供ManagedBeans,然后将其传递给JSF自己的ELResolver。因此,JSF需要知道bean的名称以了解要注入什么。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接