Spring MVC - 搭建 - 基于Config

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

在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值