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