我是注释新手,我正在尝试 jsf(2.0) spring (3.1) 集成,我可以集成这两个框架,但我在 JSF 中没有 viewScope,因为它不可用。我想使用注解在jsf managedBean中自动注入spring bean,但我不能,因为Spring只支持会话和请求范围bean。
我使用检索 bean 的 Util 类。“SprigUtil.getBean('bean')”。并在需要时手动检索弹簧豆。
我想做一些这样的事情
@CustomAnnotation('beanTest')
private Bean bean;
因此,bean 属性将使用 beanTest bean 进行设置。
我的目标(撇开春天)是知道如何做这样的事情
@assign('House')
private String place;
当我调用getMethod
获取“房子”时。instance.getPlace(),返回“房子”
注意:我知道 @Autowired 但我不能使用它,因为 ViewScope 在 spring-jsf 集成中不可用。
我阅读了有关手动实现视图范围的信息,但想尝试不同的解决方案。
编辑:
我的 Faces 配置:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.1">
<application>
<el-resolver> org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
</faces-config>
还有我的 appContext
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="*" />
</beans>
我的春豆
@Component
public class ProductService{
}
我的托管 Bean
@Component
@Scope("request")//I need to use @Scope("view") but it doesn't exist
public ProductBean implements Serializable{
@Autowired
ProductService productoService;
}
如果我使用 jsf 注释 @ManagedBean 和 @ViewScoped productService 未注入(为空)