我有一个 JSF Web 应用程序和一个名为 User 的示例托管 Bean:
@ManagedBean
@SessionScoped
public class User {
private String name, surname;
public String getName() {
return name;
}
public void setName(String name) {
updateName(name);
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
private void updateName(String name){
Connection connection = ConnectionFactory.getConnection();
//Update name via Connection
}
}
然后我有一个示例类 ConnectionFactory。
public class ConnectionFactory {
private static Queue<Connection> connections;
static {
//initialize connections
}
public static Connection getConnection() {
return connections.poll();
}
//Other methods related to connection pooling, this is really just an example class
}
我的问题是,这样的工厂类可以用来提供 DATABASE CONNECTIONS 吗?是否保证具有任何范围(从请求到应用程序范围)的每个 bean 都将在容器运行时共享这一类?
我只想在更新方法的持续时间内租用与 bean 的连接。我不喜欢具有长生命周期(会话可能需要很长时间)的会话范围托管 bean 的想法,该 bean 具有注入 Connection 对象的类属性。