0


你知道如何在不使用 spring 的情况下将对象设置为 resteasy 框架。
例如我有服务:

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

   private MyDBconnection db = new MyDBconnection();

   ...

}

如何将数据库连接对象保存到所有网络服务器的应用程序范围?

4

1 回答 1

2

我不会保存一个数据库连接以在多个物理服务器之间共享。我不确定这是否是您要问的。我建议在每台服务器上共享连接/池。您可以做的最简单的事情是一个简单的单例。但是,我建议您使用 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 回答