【发布时间】:2016-02-05 09:14:28
【问题描述】:
我在托管 bean 中有一个类(静态)变量。从另一个托管 bean 中引用此类变量是否合法,如下所示:
@ManagedBean
@ApplicationScoped
public class FooBean {
private Context ctx;
public static DataSource ds;
@PostConstruct
public void init() {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/foobar");
}
}
@ManagedBean
@RequestScoped
public class BarBean {
public void foobar() {
// Is that legal and save?
Connection conn = FooBean.ds.getConnection();
}
}
我应该改用依赖注入吗?
@ManagedBean
@RequestScoped
public class BarBean {
@ManagedProperty(value = "#{fooBean}")
private FooBean fooBean;
public void foobar() {
Connection conn = fooBean.get_ds().getConnection();
}
}
【问题讨论】: