Spring MVC配置文件

在Spring MVC项目中,配置文件是至关重要的,它们帮助Spring框架正确地初始化并管理应用。通常,在web.xml中配置Spring的DispatcherServlet,并在applicationContext.xml和spring-mvc.xml中配置Spring的Bean定义和MVC相关设置。

  1. web.xml配置

web.xml是Web应用的部署描述符,用于配置Servlet容器启动时需要加载的Servlet、监听器等。对于Spring MVC应用,通常需要在这里配置DispatcherServlet。

‌示例配置:‌

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

<display-name>Spring MVC Application</display-name>

<!-- Spring DispatcherServlet Configuration -->

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring-mvc-config.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<!-- Spring Listener -->

<listener>

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

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml</param-value>

</context-param>

</web-app>

  1. applicationContext.xml配置

applicationContext.xml通常包含Spring的全局配置,例如数据源、事务管理器、业务层Bean等。这个文件通常不包含MVC特定的配置。

‌示例配置:‌

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd">

<!-- DataSource configuration -->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/yourdatabase"/>

<property name="username" value="root"/>

<property name="password" value="password"/>

</bean>

<!-- Transaction manager -->

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

<!-- Other beans -->

</beans>

  1. spring-mvc.xml配置(或使用Java Config)

对于MVC特定的配置,可以在spring-mvc.xml中定义,或者使用Java配置类(推荐方式)。spring-mvc.xml应该包含视图解析器、控制器、拦截器等MVC相关的配置。

‌XML配置示例:‌

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<!-- 扫描 Controller 层 -->

<context:component-scan base-package="com.example.controller" />

<!-- 启用注解驱动(@RequestMapping, @ResponseBody 等) -->

<mvc:annotation-driven />

<!-- 静态资源处理:避免 DispatcherServlet 拦截 /static/ 下的资源 -->

<mvc:resources mapping="/static/**" location="/static/" />

<!-- 视图解析器:将逻辑视图名解析为 JSP 文件 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/"/>

<property name="suffix" value=".jsp"/>

</bean>

<!-- 文件上传配置(如需) -->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="5242880"/> <!-- 5MB -->

</bean>

</beans>

相关推荐
伏加特遇上西柚5 小时前
Loki+Alloy+Grafana日志采集部署
java·linux·服务器·spring boot·grafana·prometheus
阿丘Akiu5 小时前
Linux部署我的世界服务器
java
折哥的程序人生 · 物流技术专研6 小时前
《Java面试85题图解版(二)》进阶深化中篇:Spring核心 + 数据库进阶
java·后端·spring·面试
SamDeepThinking6 小时前
写代码不考虑前后兼容,迟早要还的
java·后端·程序员
亿牛云爬虫专家6 小时前
深度解析:数据采集场景下的 Java 代理技术实战
java·开发语言·数据采集·动态ip·动态代理·代理配置·连接池复用
小小仙。6 小时前
IT自学第四十二天
java·开发语言
java1234_小锋6 小时前
说一下Spring的事务传播行为?
java·数据库·spring
庞轩px6 小时前
第四篇:SpringBoot自动配置——约定大于配置的底层原理
java·spring boot·后端·spring·自动配置·注解开发
不知名的忻6 小时前
Dijkstra算法(朴素版&堆优化版)
java·数据结构·算法··dijkstra算法
苏三说技术6 小时前
美团二面:高并发下如何保证接口幂等性?
java·数据库