如何定义 Java Tomcat 应用程序的正确启动顺序?
How to define the correct startup order of a Java Tomcat application?
在我的 Java Tomcat 应用程序中,我设置了一些要在整个应用程序中使用的属性。但显然其他功能(例如 Hibernate)之前已经启动并且需要其中一些属性。
属性在 web.xml 中定义的 class 中初始化:
<listener>
<listener-class>com.mycode.ApplicationContextListener</listener-class
</listener>
有没有办法(在 web.xml 中?)定义在 Tomcat 启动应用程序时要启动的第一个函数?或者其他方法?
谢谢,
弗兰克
您可以按照 here 所述使用 XML 标签 "loadOnStartup" 来定义哪个 class 必须先启动。
据我了解,在初始化 Servlet 上下文之前,您有一些属性想要从一些加载的 class 中 access/reference。
- 如果这是像 Hibernate 这样的第三方库,那么他们有
他们自己的属性文件要使用的原因。
- 在任何第 3 方库加载到 Tomcat 使用的 JVM 之前,您可以在 Tomcat init 期间使用 Tomcat 的属性。
- 标准 Java 属性文件
在从 JVM 调用任何 Java 应用程序之前,在 class 路径初始化期间加载到 JVM 中。
在我的 Java Tomcat 应用程序中,我设置了一些要在整个应用程序中使用的属性。但显然其他功能(例如 Hibernate)之前已经启动并且需要其中一些属性。
属性在 web.xml 中定义的 class 中初始化:
<listener>
<listener-class>com.mycode.ApplicationContextListener</listener-class
</listener>
有没有办法(在 web.xml 中?)定义在 Tomcat 启动应用程序时要启动的第一个函数?或者其他方法?
谢谢, 弗兰克
您可以按照 here 所述使用 XML 标签 "loadOnStartup" 来定义哪个 class 必须先启动。
据我了解,在初始化 Servlet 上下文之前,您有一些属性想要从一些加载的 class 中 access/reference。
- 如果这是像 Hibernate 这样的第三方库,那么他们有 他们自己的属性文件要使用的原因。
- 在任何第 3 方库加载到 Tomcat 使用的 JVM 之前,您可以在 Tomcat init 期间使用 Tomcat 的属性。
- 标准 Java 属性文件 在从 JVM 调用任何 Java 应用程序之前,在 class 路径初始化期间加载到 JVM 中。