当前位置: 首页 > news >正文

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>

2. 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>

3. 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>

http://www.cnnetsun.cn/news/1998170.html

相关文章:

  • Chain-of-Recursive-Thoughts扩展开发:如何集成新的AI模型和自定义功能
  • Rspamd Lua API开发指南:如何编写自定义插件扩展垃圾邮件过滤功能
  • 开发全民基础财税智能知识普及测评答题编程工具,定制普惠题库,答题打分,判定大众财税认知等级定向推送教学内容。
  • 2025届最火的五大AI辅助写作方案横评
  • DOL-Lyra整合包终极指南:5分钟打造个性化Degrees of Lewdity游戏体验
  • 速腾M1激光雷达ROS驱动编译避坑指南(Ubuntu 18.04 + ROS Melodic实测)
  • Z-Image在windows系统中部署方法(精要总结教程)
  • LxgwNeoXiHei特殊符号支持:易经、麻将、象棋符号全解析
  • 设计系统已死?AI时代的两种终极范式对决:Awesome DESIGN.md vs UI UX Pro Max
  • Dify信创适配紧急通告:2024Q3起所有未通过工信部《智能体平台国产化兼容性认证》的部署将无法通过验收(附自测工具包)
  • nli-distilroberta-base完整指南:镜像定制、API封装、健康检查一体化部署
  • 别再乱用map和unordered_map了!C++面试官最爱问的底层区别与实战选型指南
  • 三相PWM整流器设计避坑指南:电感、电容、开关管选型如何影响系统稳定性?
  • 用腾讯云COS给Obsidian笔记找个家:Remotely Save插件保姆级配置教程(含CORS避坑)
  • 5分钟打造专属视频门户:MediaCMS让媒体管理从未如此简单
  • 3步实现MASA模组中文界面:专业汉化资源包解决方案
  • 为了简化编程,提高开发速度我采用火山免费版+付费版本
  • 一种废弃打印纸可用区域的自动识别和再利用方法
  • 3个核心技巧:高效掌握HLS流媒体下载与解密技术
  • 月检需求分析2
  • VS2013玩转OpenGL:从环境搭建到画出第一个彩色三角形(GLEW/GLUT库详解)
  • 一个用 Rust 编写的、速度极快的 Python 包和项目管理器
  • OptiBPM应用:光功率耦合器
  • 西门子S7-200smart PLC通过RS485通讯读取绝对值伺服编码器当前位置并记录至机械...
  • Delphi 11发布前必做的5件事:从免费手册到早鸟优惠,手把手教你平滑升级
  • Stable-Diffusion-V1-5 作品集:探索不同采样器与模型架构的视觉差异
  • Python自动化文件批量格式转换工具
  • 易语言大漠脚本进阶:手把手封装一套防检测的‘智能鼠标’与‘记忆键盘’模块
  • EF Core 10向量搜索接入避坑清单,92%开发者踩过的7个隐性陷阱(含迁移脚本生成失效、HNSW索引自动降级等)
  • 小说下载器:拯救消失的文学,打造你的永久私人图书馆