0

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
    }
}

それから私は Example クラス 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 が、コンテナの実行時にこの 1 つのクラスを共有することが保証されていますか?

更新メソッドの期間中のみ、Bean への接続をリースしたい。Connection オブジェクトでクラス プロパティを注入することで、有効期間が長い (セッションには非常に長い時間がかかる可能性がある) セッション スコープのマネージド Bean という考えは嫌いです。

4

1 に答える 1