Spring MVC环境搭建:零配置与XML配置方式全解析及核心代码示例
搭建Spring MVC环境并配置核心代码,可以通过两种方式实现:零配置形式和XML配置形式。以下是这两种方式的详细步骤和代码示例。 ### 1. 使用零配置形式(基于Java配置) #### 1.1 创建Maven项目 首先,创建一个Maven项目,并在`pom.xml`文件中添加必要的依赖项: ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>springmvc-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.10</version> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- JSP support --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- JSTL --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.1</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project> ``` #### 1.2 创建Spring配置类 在`src/main/java`目录下创建一个配置类,例如`AppConfig.java`: ```java package com.example.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.example") public class AppConfig implements WebMvcConfigurer { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } } ``` #### 1.3 创建Spring初始化类 在`src/main/java`目录下创建一个初始化类,例如`WebAppInitializer.java`: ```java package com.example.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return null; // No root config classes needed for this example } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{AppConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } } ``` #### 1.4 创建控制器类 在`src/main/java`目录下创建一个控制器类,例如`HelloController.java`: ```java package com.example.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") public String sayHello(Model model) { model.addAttribute("message", "Hello, Spring MVC!"); return "hello"; // This will resolve to /WEB-INF/views/hello.jsp } } ``` #### 1.5 创建视图文件 在`src/main/webapp/WEB-INF/views`目录下创建一个JSP文件,例如`hello.jsp`: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello Page</title> </head> <body> <h1>${message}</h1> </body> </html> ``` ### 2. 使用XML配置形式 #### 2.1 创建Maven项目并添加依赖项(同上) #### 2.2 创建Spring配置文件 在`src/main/resources`目录下创建一个Spring配置文件,例如`dispatcher-servlet.xml`: ```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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- Enable component scanning --> <context:component-scan base-package="com.example"/> <!-- Enable Spring MVC --> <mvc:annotation-driven/> <!-- Configure view resolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> </beans> ``` #### 2.3 创建Spring初始化类(同上) 在`src/main/java`目录下创建一个初始化类,例如`WebAppInitializer.java`: ```java package com.example.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return null; // No root config classes needed for this example } @Override protected Class<?>[] getServletConfigClasses() { return null; // No servlet config classes needed for this example } @Override protected String[] getServletMappings() { return new String[]{"/"}; } } ``` #### 2.4 修改`web.xml`文件以加载Spring配置文件(如果需要) 在`src/main/webapp/WEB-INF`目录下创建或修改`web.xml`文件: ```xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2 ######[AI写代码神器 | 2048点数解答 | 2024-11-21 11:05:09]
- Spring框架实战:从配置到实现,搞定员工信息查询功能(GPT | 2135点数解答 | 2024-06-12 08:32:35)315
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)24
- IntelliJ IDEA 搭建 Spring Boot 项目:从创建到 JPA 实体类及数据源配置全攻略(讯飞星火 | 920点数解答 | 2024-10-31 15:37:22)265
- MySQL 数据库操作:用德鲁伊连接池和 Spring JDBC 实现 MVC 架构下 Student 表操作及事务测试全解析(字节豆包 | 1115点数解答 | 2025-03-19 11:17:31)291
- Spring JDBC+德鲁伊连接池:MVC架构下MySQL学生表查询、事务验证及代码实现全解析(DeepSeek | 1275点数解答 | 2025-03-19 11:21:32)277
- 易语言模拟POST请求抓包内容:代码示例及注意要点揭秘(字节豆包 | 1131点数解答 | 2025-06-02 12:46:09)185
- Spring MVC环境搭建:零配置与XML配置方式全解析及核心代码示例(讯飞星火 | 2048点数解答 | 2024-11-21 11:05:09)290
- SpringMVC 环境搭建全攻略:XML 配置示例及关键逻辑点 (字节豆包 | 332点数解答 | 2024-11-21 19:57:35)129
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)265
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)263
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)278
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)308