`

深度挖掘spring MVC 多文件配置

阅读更多
1.首先需要了解web.xml 两种参数

(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如   
 <context-param>
           <param-name>context/param</param-name>
           <param-value>avalible during application</param-value>
  </context-param>  


代码中获取这个参数
(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
    <servlet>
        <servlet-name>MainServlet</servlet-name>
        <servlet-class>com.wes.controller.MainServlet</servlet-class>
        
      [color=red] <init-param>
            <param-name>param1</param-name>
            <param-value>avalible in servlet init()</param-value>
        </init-param>[/color]
        <load-on-startup>0</load-on-startup>
     </servlet>
  

在servlet中可以通过代码分别取用:



在servlet中可以通过代码分别取用:

public class MainServlet extends HttpServlet{    
   
    public MainServlet(){    
        super();    
      }    
    public void init() throws ServletException ...{    
          System.out.println("下面的两个参数param1是在servlet中存放的");    
          System.out.println(this.getInitParameter("param1"));    
          System.out.println("下面的参数是存放在servletcontext中的");    
          System.out.println(getServletContext().getInitParameter("context/param"));    
       }    
}   

public class MainServlet extends HttpServlet{  

    public MainServlet(){         

       super();     

}     

public void init() throws ServletException ...{         

System.out.println("下面的两个参数param1是在servlet中存放的");        

System.out.println(this.getInitParameter("param1"));         

System.out.println("下面的参数是存放在servletcontext中的");         

System.out.println(getServletContext().getInitParameter("context/param"));        } 
}


第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到

在JSP中可以用config.getServletContext().getInitParameter("context/param")得到

或者this.getServletContext().getInitParameter("context/param")
第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取得

2.接下来,我们言归正转,开始配置spring.
方法1:
     <servlet>
     <servlet-name>springDemo</servlet-name>
	<servlet-class>
          org.springframework.web.servlet.DispatcherServlet
          </servlet-class>
	 <init-param>
 	 <param-name>namespace</param-name>
          <param-value>WEB-INFO/springDemo-servlet</param-value>
          </init-param>  
	<!--servlet加载方式,启动容器时加载-->
	<load-on-startup>1</load-on-startup>    
	</servlet>

多文件配置
<init-param>
      <param-name>contextConfigLocation</param-name>
         <param-value>
         classpath*:conf/applicationContextN.xml
         classpath*:conf/applicationContextN-1.xml
         ...
         classpath*:conf/applicationContext.xml
        </param-value>
<init-param>



方法2:


<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/classes/applicationContext_*.xml</param-value>
 </context-param>

多个配置文件的加载
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:conf/spring/applicationContext_N.xml,
            classpath*:conf/spring/applicationContext_N-1.xml,
             ...
            classpath*:conf/spring/applicationContext_.xml
        </param-value>
    </context-param> 


文件放在Src下面也是可以的,部署的时候,都会编译到classes目录下面去.
还有一步最得重要的

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


ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于ApplicationContext.xml这个配置文件部署在哪,如何配置多个xml文件,书上都没怎么详细说明。现在的方法就是查看它的API文档。在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。看看它的API说明



第一段说明ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。如果查看ContextLoaderServlet的API,可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet。 这个接口

    第二段,ContextLoader创建的是 XmlWebApplicationContext这样一个类,它实现的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->

BeanFactory这样一来spring中的所有bean都由这个类来创建

    第三段,讲如何部署applicationContext的xml文件,如果在web.xml中不写任何参数配置信息,默认的路径是"/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/classes/applicationContext-*.xml
        </param-value>
    </context-param>

   在<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并一“,”号分隔。上面的applicationContext-*.xml采用通配符,比如这那个目录下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等文件,都会一同被载入

分享到:
评论

相关推荐

    互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析

    Spring、Spring MVC、MyBatis源码深度剖析》以SSM 的核心代码剖析为基础,突破Java Web 研发瓶颈的束缚,选取Spring、SpringMVC 和MyBatis 框架中易于理解的版本,深入剖析了其中各个模块的实现,从代码中挖掘常用的...

    互联网轻量级 ssm 框架解密 springspringmvcmybatis源码深度剖析

    Spring、Spring MVC、MyBatis源码深度剖析》以SSM 的核心代码剖析为基础,突破Java Web 研发瓶颈的束缚,选取Spring、SpringMVC 和MyBatis 框架中易于理解的版本,深入剖析了其中各个模块的实现,从代码中挖掘常用的...

    基于SSM的爬虫系统,Spring+Spring MVC+MyBatis+Druid+Redis+MQ.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    spring-src.zip

    《Spring框架源码深度解析》 Spring框架是Java开发领域中的一个核心组件,以其强大的功能、灵活的设计和...无论是初学者还是经验丰富的开发者,都应该尝试去挖掘Spring源码中的宝藏,这将极大地提升你的Java开发技能。

    spring4源码

    总的来说,Spring 4 源码的学习是一个深度挖掘的过程,涉及到 Java、设计模式、企业级开发等多个领域。通过这个过程,开发者不仅可以提升自己的技能,还能更好地利用 Spring 框架解决实际问题。

    一个海盗湾的爬虫,通过Spring Mvc提供API.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    Spring源码解析

    《Spring源码深度解析》 在Java开发领域,Spring框架无疑是最重要的组件之一,它以其强大的功能和灵活性赢得了广大开发者的心。...Spring源码深度解析的过程,就是不断提升自我、挖掘技术潜力的过程。

    spring in action 十章

    总的来说,《Spring in Action》中文版不仅适合初学者了解和学习Spring的基本原理,也适合有经验的开发者深入挖掘Spring的高级特性和最佳实践。无论是PDF还是CHM格式,都能为读者提供丰富的学习资源,助你在Spring的...

    《精通Spring2.X企业应用开发详解》随书源码1-15章

    展现层应用 第19章 Spring MVC之一 第20章 Spring MVC之二 第21章 集成其他Web框架 第6篇 其他 第22章 Spring应用的测试 第23章 Spring工具类盘点 附录A 各种数据库连接配置及驱动 附录B ...

    spring中文帮助手册

    对于有经验的开发者,手册提供了深度挖掘和优化应用的指南,有助于提升项目开发效率。 综上所述,"spring2.0-reference_final_zh_cn.chm"是Java开发者必备的工具,无论你是初学者还是资深开发者,都能从中受益匪浅...

    《精通Spring2.X企业应用开发详解》16-19章

    展现层应用 第19章 Spring MVC之一 第20章 Spring MVC之二 第21章 集成其他Web框架 第6篇 其他 第22章 Spring应用的测试 第23章 Spring工具类盘点 附录A 各种数据库连接配置及驱动 附录B ...

    《精通Spring2.X企业应用开发详解》20-23

    展现层应用 第19章 Spring MVC之一 第20章 Spring MVC之二 第21章 集成其他Web框架 第6篇 其他 第22章 Spring应用的测试 第23章 Spring工具类盘点 附录A 各种数据库连接配置及驱动 附录B ...

    基于SSM框架和推荐算法的机票预订系统.zip

    4. **深度学习推荐(Deep Learning-based Recommendation)**:利用神经网络模型,如矩阵分解、卷积神经网络或循环神经网络,挖掘用户行为的潜在特征,进行更精准的个性化推荐。 在实际开发中,需要结合业务需求和...

    tangt-and-song-dynasties-SSM_StudentInfo-master.zip

    《SSM框架在唐朝与宋朝历史数据管理中的应用》 在现代信息技术中,软件开发框架扮演着至关重要的角色,它们提供了...这样的系统对于研究和展示古代历史文化具有极大的价值,能够帮助我们更好地理解和挖掘历史的深度。

    人工智能-项目实践-信息检索-专利检索系统Spring

    标题 "人工智能-项目实践-信息检索-专利检索系统Spring" 提到的是一个基于Spring框架的人工智能项目,专注于信息检索,特别是专利数据的检索。在这个系统中,Spring扮演着核心角色,提供了一个强大的后端开发框架,...

    SpringBoot + OpenNLP + Neo4j + Spark朴素贝叶斯分类器实现石油相关论文的智能分析问.zip

    Neo4j可以高效存储和查询这种关系型数据,帮助构建论文之间的关联网络,支持深度挖掘和分析。 4. Spark朴素贝叶斯分类器: Apache Spark是一个分布式计算框架,适用于大数据处理。在本项目中,Spark可能被用于并行...

    基于ssm+mysql决策树算法的大学生就业预测系统源码数据库论文.docx

    SSM(Spring、SpringMVC、MyBatis)是一个流行的企业级Java Web开发框架,由Spring框架、Spring MVC和MyBatis ORM工具组成。Spring作为核心容器,负责管理应用对象的生命周期和依赖注入;Spring MVC处理HTTP请求和...

    Spring+SpringMVC+MyBatis+Mysql 销售管理系统 毕业设计.zip

    《Spring+SpringMVC+MyBatis+MySQL:构建销售管理系统的深度解析》 在现代企业信息化进程中,销售管理系统扮演着至关重要的角色。本毕业设计项目以“Spring+SpringMVC+MyBatis+MySQL”为核心技术栈,构建了一套完整...

    2019最新一线互联网大厂java面试题及答案(适合面试前冲刺刷题)

    2019年的Java面试题集锦,不仅包含了基础理论的深度挖掘,还融入了当时业界流行的架构技术、Spring框架、微服务架构以及JVM优化等关键知识点。这份资料旨在帮助求职者在面试前进行高效地冲刺刷题,提升技术实力,...

Global site tag (gtag.js) - Google Analytics