springboot集成mvc

如果你想要保持Spring Boot 的一些默认MVC特征,同时又想自定义一些MVC配置(包括:拦截器,格式化器, 视图控制器、消息转换器 等等),你应该让一个类实现WebMvcConfigurer,并且添加@Configuration注解,但是千万不要加@EnableWebMvc注解。如果你想要自定义HandlerMapping、HandlerAdapter、ExceptionResolver等组件,你可以创建一个WebMvcRegistrationsAdapter实例 来提供以上组件。

如果你想要完全自定义SpringMVC,不保留SpringBoot提供的一切特征,你可以自己定义类并且添加@Configuration注解和@EnableWebMvc注解

引入一些web项目用到的依赖


<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!-- 添加servlet依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- 添加jstl标签库依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--添加tomcat依赖模块.-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

 

例如集成jsp

  • 加视图解析
//可以放在启动类 XXXApplication 中,或者自定义一个有 @Configuration的类
@Bean
public InternalResourceViewResolver internalresource(){
	InternalResourceViewResolver internalresource =new InternalResourceViewResolver();
	internalresource.setPrefix("/WEB-INF/JSP/");
	internalresource.setSuffix(".jsp");
	return internalresource;
}

##代码就如同在application.properties 中加入视图解析配置,如下能达到一样的效果:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
  • 在指定文件夹创建文件即可

    

例如定义一个拦截器:

  • 实现 HandlerInterceptor类(或者继承 HandlerInterceptorAdapter)
public class LoginInterceptor implements HandlerInterceptor {

    private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        logger.debug("preHandle method is now running!");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
        logger.debug("postHandle method is now running!");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        logger.debug("afterCompletion method is now running!");
    }
}
  •  定义配置类,注册拦截器
@Configuration
public class MvcConfig implements WebMvcConfigurer{
    /**
     * 通过@Bean注解,将我们定义的拦截器注册到Spring容器
     * @return
     */
    @Bean
    public LoginInterceptor loginInterceptor(){
        return new LoginInterceptor();
    }

    /**
     * 重写接口中的addInterceptors方法,添加自定义拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 通过registry来注册拦截器,通过addPathPatterns来添加拦截路径
        registry.addInterceptor(this.loginInterceptor()).addPathPatterns("/**");
    }
}

 

Spring Boot 中集成 MVC 架构非常简单。Spring Boot 默认使用 Spring MVC 作为其 Web 框架,并提供了自动配置和依赖管理,使得集成 MVC 架构变得更加方便。 下面是集成 Spring MVC 的步骤: 1. 创建一个 Spring Boot 项目: 使用 Spring Initializr(https://start.spring.io/)或者使用 IDE(如 IntelliJ IDEA)创建一个新的 Spring Boot 项目。 2. 添加相关依赖: 在项目的 `pom.xml` 文件中添加 Spring MVC 的依赖。Spring Boot 会自动管理版本号和冲突依赖。 ```xml <dependencies> <!-- Spring MVC 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 其他依赖... --> </dependencies> ``` 3. 创建控制器类: 创建一个控制器类,使用 `@Controller` 或 `@RestController` 注解标记类。定义处理请求的方法并添加相关的请求映射注解,如 `@RequestMapping`。 ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MyController { @RequestMapping("/hello") @ResponseBody public String hello() { return "Hello, Spring Boot!"; } } ``` 4. 启动应用程序: 运行 Spring Boot 应用程序,可以使用 IDE 的运行按钮,或者使用命令行运行 `mvn spring-boot:run`。 5. 测试: 在浏览器或者其他工具中访问相应的 URL,例如 `http://localhost:8080/hello`,应该能够看到返回的内容 "Hello, Spring Boot!"。 通过以上步骤,你就成功集成Spring MVC 架构。你可以在控制器类中定义更多的请求处理方法,处理不同的 URL 和请求类型。 注意:Spring Boot 会自动扫描控制器类和其他组件,不需要额外的配置。如果需要自定义配置,可以添加额外的配置类,并使用 `@Configuration` 注解标记。 希望能对你有所帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值