我正在处理的应用程序使用会话作用域的巨大遗留bean。问题是我无法重构代码,我需要一些属性来请求作用域。有没有办法实现这个目标?
答案 0 :(得分:1)
你可以有一个@RequestScoped
bean,使用@ManagedProperty
注入遗留会话作用域bean并使用@PostConstruct
来检索你需要的属性。
例如:
@ManagedBean(name = "legacyBean")
@SessionScoped
public class LegacyBean implements Serializable {
private Object attr1;
private Object attr2;
// Getters and setters
}
@ManagedBean(name = "requestScopedBean")
@RequestScoped
public class RequestScopedBean {
private Object requestAttr1;
@ManagedProperty(value = "#{legacyBean}")
private LegacyBean legacyBean;
@PostConstruct
private void init() {
this.requestAttr1 = legacyBean.getAttr1();
}
public Object getRequestAttr1() {
return this.requestAttr1 ;
}
}