初始化JAX-RS servlet的Memcached / JDBC资源

时间:2011-11-20 18:48:14

标签: java design-patterns jdbc jersey jax-rs

我有一个服务,我想使用jdbc在mysql数据库中维护数据持久性。虽然我有独立构建jdbc应用程序和jax-rs应用程序的经验,但我从未将这两者结合起来。问题是,jdbc类型的东西需要建立和拆除的地方去哪儿了?通常我会将构建放在静态块或构造函数中,并且id有一个在finally中调用的清理方法。这似乎不适用于jax-rs框架 - 在每次调用时都会调用构造函数,而且我不知道放置任何清理方法。不幸的是,在网上结合这两种技术的例子很少,我觉得很惊讶。你能帮助我吗?

1 个答案:

答案 0 :(得分:2)

作为一般规则,要在启动和关闭Web应用程序时执行操作,您应该创建自定义ServletContextListeners并将其列在web.xml中。

使用WAR中的JDBC资源,通常会让您的容器(例如Tomcat,Websphere等)创建和管理可与许多Web应用程序共享的连接池。您可以在web.xml中为resource-ref定义javax.sql.DataSource。然后有一个特定于容器的方法,用于定义JDBC DataSource并将其绑定到应用程序的resource-ref

我不熟悉Memchached以及启动/关闭时需要什么,所以这只是猜测。如果您需要使用Memcache服务器注册/取消注册,您可以尝试在web.xml中定义一个或多个env-entry标记,自定义ServletContextListener可以使用这些标记进行出价。