web.xml配置webAppRootKey

web.xml文件中webAppRootKey属性是web项目的绝对路径,默认值是webApp.root,可以通过System.getProperty(“webApp.root”)来获取属性值或者在配置文件中通过${webApp.root}获得。

param>  
      <param-name >webAppRootKeyparam-name > 
     <param-value >webApp.root param-value > 
param >

Spring通过 org.springframework.web.util.WebAppRootListener 这个监听器来注入项目路径,因此部署在同一个web容器中的项目,要配置不同的param-value(比如”项目名.root”),不然会造成冲突。但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能。WebAppRootListener要在ApplicationContext的ContextLoaderListener之前,否则ApplicationContext的bean注入根目录值时会发生无法注入异常。
配置WebAppRootListener:

<listener>
        <listener-class>org.springframework.web.util.WebAppRootListenerlistener-class>
 listener>

web.xml中配置及其监听器顺序如下:

  
      
  < context-param > 
    <param-name >log4jConfigLocation param-name > 
    <param-value >/WEB-INF/classes/log4j.properties param-value > 
  context-param > 
     
  < context-param > 
    <param-name >webAppRootKey param-name > 
    <param-value >projectName.root param-value > 
  context-param > 
      
      <context-param >
            <param-name >contextConfigLocation param-name >
            <param-value >/WEB-INF/applicationContext.xml,
           /WEB-INF/dataBeanContext.xml param-value >
      context-param >     

        
      <listener > 
        <listener-class > 
            org.springframework.web.util.Log4jConfigListener 
        listener-class > 
      listener > 

      
      <listener >
           <listener-class >org.springframework.web.context.ContextLoaderListener
            listener-class >
      listener >

你可能感兴趣的:(java,web实践)