Java 我应该在哪里初始化Apache commons pool2,以便它';它可以从其他类访问
我正在开发一个基于jax-rs的REST服务。我的应用程序需要连接池,所以我将使用commons pool2。我计划在实现ServletContextListener的类中初始化池,以便在应用程序启动时初始化池。问题是我现在不知道如何从FolderService类中访问我的池 我已尝试在下面添加适当的代码。谢谢Java 我应该在哪里初始化Apache commons pool2,以便它';它可以从其他类访问,java,rest,jax-rs,apache-commons-pool,Java,Rest,Jax Rs,Apache Commons Pool,我正在开发一个基于jax-rs的REST服务。我的应用程序需要连接池,所以我将使用commons pool2。我计划在实现ServletContextListener的类中初始化池,以便在应用程序启动时初始化池。问题是我现在不知道如何从FolderService类中访问我的池 我已尝试在下面添加适当的代码。谢谢 package rest.pool @WebListener public class TestPoolListener implements ServletContextListene
package rest.pool
@WebListener
public class TestPoolListener implements ServletContextListener {
private GenericObjectPool<GenericPool> connectionPool = null;
@Override
public void contextInitialized(ServletContextEvent arg0) {
final GenericPool[] active = new GenericPool[10];
PoolFactory poolFactory = new PoolFactory();
connectionPool = new GenericObjectPool<GenericPool>(poolFactory,config);
try {
for(int i=0 ; i<5 ; i++) {
active[i] = connectionPool.borrowObject();
}
for(int i=0 ; i<5 ; i++) {
connectionPool.returnObject(active[i]);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class MyPool extends BasePooledObjectFactory<ODServer>{
@Override
public ODServer create() {
//create code here
}
}
package rest.resource;
import javax.ws.rs.*;
@Path("/folders")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class FolderResource {
FolderService folderService = new FolderService();
@GET
public List<Folder> getFolders(@Context UriInfo uriInfo) {
return folderService.getAllFolders();
}
}
package rest.service;
public class FolderService {
public List<Folder> getAllFolders(String uri) {
List<Folder> folders = new ArrayList<>();
**//How do I get access to the connection pool from here?**
return folders ;
}
}
包rest.pool
@网络监听器
公共类TestPoolListener实现ServletContextListener{
私有GenericObjectPool connectionPool=null;
@凌驾
公共void contextInitialized(ServletContextEvent arg0){
final GenericPool[]active=新GenericPool[10];
PoolFactory PoolFactory=新的PoolFactory();
connectionPool=新的GenericObject池(poolFactory,配置);
试一试{
对于(int i=0;i在其他地方初始化它,并传递给所有需要它的类的构造函数:普通的旧依赖项注入可以手动实现,也可以通过依赖项注入框架(如Spring或Guice)实现。您可以详细说明您的答案吗?可能是一个简单的示例,也可能是对示例的外部引用?