Springmvc配置文件application.xml 和 spring-servlet.xml

Springmvc配置文件application.xml 和 spring-servlet.xml

1.SpringMVC 的配置分为两部分 application.xml 和 spring-servlet.xml

2.两个配置文件的作用和配置位置

2.1.application.xml :对应的是系统级别的配置,作用范围是系统上下文。

2.2.spring-servlet.xml:对应的是 controller 级别的配置,作用范围是控制层上下文。

3.它们在web.xml 中的配置

3.1.因为 application.xml 是系统级别的上下文,所以它的初始化需要放到 web.xml 中的标签中,同时其他的类似定时任务的配置文件等等都是放在这个标签下进行初始化的。

3.2.因为spring-servlet.xml只是 controller 级别的上下文,说白了就是 servlet 级别的初始化,它不涉及到除了转发之外的任何实体,所以它的作用范围仅仅限制在 servlet 级别,所以它的初始化应该是跟spring 的 DispatcherServlet 初始化在一起,所以就是在 表情中初始化的。它有一个默认值就是【/WEB-INF/remoting-servlet.xml 】,注意配置文件的对应的名称是【 servlet-name】-servlet.xml,所以如果你没有给servlet 制定配置文件的位置,并且在默认位置下也没有配置文件,那么系统启动的时候就会报错。

注意:对于 servlet配置文件里面应该初始化的东西,除了视图的解析方式、静态资源文件的存放位置、controller的初始化方式之外,其他的都不应该放在 servlet 配置文件中,应为它只负责 请求的转发,返回结果的解析以及静态资源文件的解析,其他的对象的初始化,定时任务...都不应该放到这个配置文件下进行管理。

复制代码
<?xml version="1.0" encoding="UTF-8"?>

复制代码
<!--  这个地方默认加载的是系统的变量的配置文件,它们属于是系统级别的配置  -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:spring/application.xml.xml,
    classpath:spring/spring-quartz.xml
    </param-value>
</context-param>
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webapp.root</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
</listener>

<listener>
    <listener-class>com.cloudFarmHDAPI.admin.listener.SystemListener</listener-class>
</listener>

<!--  这个地方加载的是 servlet 的变量的配置文件,它们属于 controller 级别的配置
    1.如果不配置这个 servlet-context.xml 的配置文件位置,
    那么默认就会去/WEB-INF/servlet-context.xml 下面去寻找这个文件 
    2.如果配置了这个位置,那么它就会去制定位置加载文件
  -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!-- charactor encoding -->
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>utf-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- shiro security filter -->
<filter>
    <filter-name>shiroSecurityFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>shiroSecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
<session-config>  
  <session-timeout>60</session-timeout>  
</session-config> 
<welcome-file-list>  
       <welcome-file>index.htm</welcome-file>  
</welcome-file-list>
相关推荐
灰小猿1 分钟前
Spring前后端分离项目时间格式转换问题全局配置解决
java·前端·后端·spring·spring cloud
一条晓鱼1 小时前
repo xml语法
xml
wfsm2 小时前
flowable使用01
java·前端·servlet
知其然亦知其所以然6 小时前
这波AI太原生了!SpringAI让PostgreSQL秒变智能数据库!
后端·spring·postgresql
zhaomx19899 小时前
Spring 事务管理 Transaction rolled back because it has been marked as rollback-only
数据库·spring
曹朋羽9 小时前
Spring EL 表达式
java·spring·el表达式
亚林瓜子11 小时前
Spring中的异步任务(CompletableFuture版)
java·spring boot·spring·async·future·异步
neoooo13 小时前
⚙️ Spring Boot × @RequiredArgsConstructor:写出最干净的依赖注入代码
spring boot·后端·spring
六件套是我1 天前
redission实现延时队列
android·java·servlet
好好研究1 天前
Spring框架 - 开发方式
java·后端·spring