【发布时间】:2013-03-05 22:23:45
【问题描述】:
我必须为 Tomcat 使用自定义记录器。扩展java.util.logging.Handler 我实现了到自定义记录器的桥梁。它通过WEB-INF/classes/logging.properties 实例化。
但它需要通过战争中的属性文件进行配置。所以我需要 ServletContext 来做servletContext.getResourceAsStream(iniFileName)。由于自定义 Logger 是由 java 日志机制创建的,因此我无法从 Servlet 构造函数或依赖注入获取 ServletContext。
如何在创建任何 Servlet 之前获取 ServletContext?
【问题讨论】:
-
我不知道这个问题的答案。但作为一种快速解决方法,您可以考虑使用单例。
-
您不能这样做,因为
ServletContext将仅在每个请求中可用。您可以改为使用ServletContextListener并在contextInitialized方法中将属性属性加载到static String(或其他)中,然后在您想要/需要的任何地方使用它。或者更好的是,使用缓存来加载那里的属性,然后在项目的其他地方使用这些属性。
标签: java tomcat servlets java.util.logging