目录:
Spring MVC - 搭建 - 基于Config
1. 新建 Maven webapp 项目
2. pom.xml
<!-- Spring Web MVC 框架,用于构建基于Spring的Web应用 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.1.11</version>
</dependency>
<!-- Jakarta Servlet API,用于开发Java Servlet和JSP应用,由容器提供 -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
3. SpringConfig.java
src/main/java/com/springmvc/config/SpringConfig.java
/**
* Spring配置类
* 该类用于配置Spring框架的组件扫描,指定需要被扫描的包路径。
*
* @Configuration 标记该类为一个配置类,用于替代XML配置文件。
* @ComponentScan 使用该注解告诉Spring去扫描指定包下的组件,包括@Service、@Repository和@Controller等注解的类。
*/
@Configuration
@ComponentScan(basePackages = {"com.springmvc.service", "com.springmvc.dao"})
public class SpringConfig {
}
4. SpringMvcConfig.java
src/main/java/com/springmvc/config/SpringMvcConfig.java
/**
* Spring MVC配置类。
* 通过@Configuration注解标识这个类是一个配置类,用于替代传统的XML配置方式。
* 使用@ComponentScan注解来扫描指定包下的组件,自动注册为Spring Bean。
* 这里只扫描了com.springmvc.controller包下的组件,这样可以控制扫描的范围,提高应用的启动性能。
*/
@Configuration
@ComponentScan({"com.springmvc.controller"})
public class SpringMvcConfig {
}
5. MyWebAppInitializer.java
src/main/java/com/springmvc/config/MyWebAppInitializer.java
/**
* 自定义Web应用程序初始化器,用于配置Spring MVC和Spring应用程序上下文。
* 继承自AbstractAnnotationConfigDispatcherServletInitializer,利用注解配置Spring MVC和根应用程序上下文。
*/
public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
/**
* 配置根应用程序上下文的类。
* 返回一个类数组,指定Spring应用程序上下文的配置类。
*
* @return 根应用程序上下文的配置类数组。
*/
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
/**
* 配置Spring MVC的类。
* 返回一个类数组,指定Spring MVC的配置类。
*
* @return Spring MVC的配置类数组。
*/
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
/**
* 配置DispatcherServlet的URL映射。
* 返回一个字符串数组,指定DispatcherServlet处理的URL模式。
*
* @return DispatcherServlet的URL映射数组。
*/
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
6. HelloController.java
src/main/java/com/springmvc/controller/HelloController.java
/**
* 控制器类,用于处理HTTP请求并提供相应的视图进行展示。
*/
@Controller
public class HelloController {
/**
* 处理请求映射为/hello的HTTP请求。
* 该方法返回一个字符串"redirect:index.jsp",指示Spring MVC重定向到index.jsp页面。
* 主要用于展示一个简单的"Hello World!"消息。
*
* @return 返回重定向的URL字符串,指向index.jsp页面。
*/
@RequestMapping("/hello")
public String sayHello() {
System.out.println("Hello World!");
return "redirect:index.jsp";
}
}
7. index.jsp
src/main/webapp/index.jsp
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
8. 运行
http://localhost:8080/hello