【发布时间】:2012-02-14 01:26:15
【问题描述】:
我想使用 jsf 注释和一些 spring
将 spring bean/服务注入 jsf 托管 bean 的注释。
(在 jsf bean 上我只想使用 jsf 注释)
我不想使用 @named / @inject 之类的注释。
我试图在网上找到解决方案,但没有任何运气。
例子
@ManagedBean
@ViewScoped
public class MyBean {
@ManagedProperty(value = "#{mySpringBean}")
private MySpringBean mySpringBean;
public void setMySpringBean(MySpringBean mySpringBean) {
this.mySpringBean = mySpringBean;
}
public void doSomething() {
//do something with mySpringBean
}
}
在不使用 xml 的情况下,这样的事情是否可行。例如, 我不想使用类似的东西
FacesContextUtils.getWebApplicationContext(context).getBean("MySpringBean");
或faces-config.xml
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.mytest.MyBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>mySpringBean</property-name>
<value>#{mySpringBean}</value>
</managed-property>
</managed-bean>
上面的内容是否可能有注释和没有注释 定义所有 jsf beans/properties 和 spring beans/properties 配置 xml 文件中的每个 bean?
【问题讨论】:
-
有趣的是,我使用这种注入方法并且它适用于我,但是我也将属性注入包含在我的
applicationContext.xml中。 Spring EL 解析器似乎不适用于我注意到的 ViewScoped bean。尝试将其更改为 SessionScoped 并查看属性是否被注入。 -
我想避免applicationContext.xml(我有点固执!谢谢)但是谢谢:)
标签: java spring jsf jsf-2 annotations