如何将.properties文件中的值包含到web.xml中?

lan*_*a90 8 jboss web.xml java-ee java-ee-5

我需要将a中的一些值包含file.propertiesWEB-INF/web.xml这样的内容中:

<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>
Run Code Online (Sandbox Code Playgroud)

我正在使用这个:

  • JBoss的
  • JEE5

Ily*_*lya 13

您可以添加此类,将文件中的所有属性添加到JVM.并将此类添加为context-listenerweb.xml

public class InitVariables implements ServletContextListener
{

   @Override
   public void contextDestroyed(final ServletContextEvent event)
   {
   }

   @Override
   public void contextInitialized(final ServletContextEvent event)
   {
      final String props = "/file.properties";
      final Properties propsFromFile = new Properties();
      try
      {
         propsFromFile.load(getClass().getResourceAsStream(props));
      }
      catch (final IOException e)
      {
          // can't get resource
      }
      for (String prop : propsFromFile.stringPropertyNames())
      {
         if (System.getProperty(prop) == null)
         {
             System.setProperty(prop, propsFromFile.getProperty(prop));
         }
      }
   }
}  
Run Code Online (Sandbox Code Playgroud)

在web.xml中

   <listener>       
      <listener-class>
         com.company.InitVariables
      </listener-class>
   </listener>  
Run Code Online (Sandbox Code Playgroud)

现在您可以使用您的项目中的所有属性

System.getProperty(...)
Run Code Online (Sandbox Code Playgroud)

或者在web.xml中

<param-name>param-name</param-name>
<param-value>${param-name}</param-value>
Run Code Online (Sandbox Code Playgroud)