私は最終的に解決策を見つけ、私は次のように、「プロバイダ」を作成する必要があります。この場合には、私が実際にデータベース接続プールへのアクセスを取得するために必要な、あなたが見ることができるように
@Provider
public class DBPoolInjectableProvider extends SingletonTypeInjectableProvider<Context, BoneCPDataSource> {
public DBPoolInjectableProvider() throws SQLException {
super(BoneCPDataSource.class, APIMain.getDBPool());
}
}
が、他のタイプのオブジェクトに対しても同じ考え方が有効です。個人的に私はこのことを考える
public TestResponse testGet(@Context final BoneCPDataSource ds) throws SQLException {
...
}
(:
私はちょうどジャージーによってスキャンされたパッケージ内にこのプロバイダを入れて、それを拾って、それはジャージーリソースに、このような方法を見ている時はいつでも、それを使用しています一種の「遠隔での行動」は反パターンですが、私はそれを今働いているので黙っています)
多分Springを使うのでしょうか? –
確かに、ジャージーでこの非常に基本的なことを達成する方法は、春のような大規模な依存関係を引き出すことなくです! – sanity
あなたのマップは通常どこから開始されますか?あなたのリソースにpublicコンストラクタを作成してそこで初期化することはできますが、(@ Singletonでアノテーションを付けない限り)リクエストごとに呼び出されるわけではありません。 –