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

发布于 2024-12-17 00:19:03 字数 261 浏览 0 评论 0 原文

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

I have a service where I want to maintain data persistence in a mysql db using jdbc. While i have experience building jdbc apps and jax-rs apps in isolation, I've never combined the two. The question is, where does the build up and tear down required for the jdbc-type stuff go? Ordinarily i'd put the build up in a static block, or in a constructor, and id have have a cleanup method that gets called in a finally. this doesnt seem to work in the jax-rs framework- the constructor gets called at every invocation, and there is no place to my knowledge to put any clean up methods. unfortunately, there are sparse examples for combining the two technologies online, something i find surprising. Can you guys help me out?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柠檬心 2024-12-24 00:19:03

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

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

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

As a general rule, to do things at the startup and shutdown of your web application, you should create custom ServletContextListeners and list them in your web.xml.

With JDBC resources in a WAR, often times you have your container (e.g. Tomcat, Websphere, etc.) create and manage a connection pool which can be shared with a number of web applications. You would define a resource-ref for a javax.sql.DataSource in your web.xml. Then there is a container specific method for defining and binding the JDBC DataSource to the resource-ref of your application.

I'm not familiar with Memchached and what is needed on startup/shutdown so this is only a guess. If you need to register/unregister with a Memcache server you might try having one or more env-entry tags defined in your web.xml which could be used by a custom ServletContextListener to do your bidding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文