我正在尝试将以下行为添加到我的 Jersey 服务中:
- 从 WEB-INF 文件夹加载/解析一些文件
- 将其存储在单例中,以便在应用程序的生命周期中快速访问。
现在我正在工作的解决方案是:
- 获取资源请求的 ServletContext
- 对于每个需要访问文件的请求,调用此方法 getSomething(criteria, servletContext)
我必须传递 servletContext ,以便我可以使用它来使用 getRessourceAsStream() 方法加载资源,否则,我无法获得正确的路径。这是我的主要痛点。
我希望能够让服务器在应用程序服务器中准备就绪后自动执行此操作,但我无法找到确切的位置可以完成此操作。这将消除我始终传递 servletContext 的需要,并允许我在一些自定义反序列化器中使用该单例,并使使用该单例的代码更干净。
最佳答案
任何时候您发现自己想要在 Servlet 应用程序启动时做一些工作,请使用 ServletContextListener
,特别是 contextInitialized(ServletContextEvent)
方法。
关于java - 容器加载后运行代码 - 资源加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676775/