0


Do you know how to set object to resteasy framework without using spring.
For example I have service :

@Path("/customers")
public class CustomerResource {

   private MyDBconnection db = new MyDBconnection();

   ...

}

How can I save db connection object to application scope for all webservers ?

4

1 に答える 1

2

複数の物理サーバー間で共有される 1 つの db 接続を保存しません。それがあなたの求めているものかどうかはわかりません。各サーバーで接続/プールを共有することをお勧めします。最も簡単にできることは、単純なシングルトンです。ただし、必要な場所でこのようなことができるように、Guice https://code.google.com/p/google-guice/を使用することをお勧めします。

@Path("/customers")
public class CustomerResource {
   @Inject
   private Connection db;

   ...
}

そして、これに似たguiceモジュールを定義できます

public class DatabaseModule extends AbstractModule {
    @Override
    protected void configure() {
        ...
    }

    @Provides
    @Singleton
    Connection provideConnection() {
        MyDBConnection connection = new MyDBConnection("jdbc:mysql....");
        connection.setSomeCustomStuff(someCustomStuff);
        return connection;
    }
}

現在、resteasy は Guice 2.0 のみをサポートしています。あなたがそのクールさを受け入れることができるなら、そうでないなら、Guice 3.0 を resteasy に統合するのを手伝うことができます。

于 2013-03-05T05:45:36.483 に答える