Springboot 整合springmvc 实战

Spring Boot 旨在简化Spring应用的初始搭建以及开发过程,它通过约定优于配置的原则来减少XML配置,使得开发者可以专注于业务逻辑的实现。Spring Boot 默认就集成了Spring MVC,这意味着你无需过多的配置就能开始编写控制器。

以下是Spring Boot整合Spring MVC的基本步骤,以及一些实战中的注意事项:

1. 添加依赖

pom.xmlbuild.gradle中添加Spring Web的依赖,这将自动包含Spring MVC所需的所有依赖。

Maven示例:


    
        org.springframework.boot

        spring-boot-starter-web

    


Gradle示例:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

2. 创建控制器

使用@RestController@Controller注解创建控制器类,并使用@RequestMapping注解来指定请求的路径。

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

3. 自定义配置

如果你需要对Spring MVC进行更详细的定制,可以实现WebMvcConfigurer接口并覆盖其中的方法。

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
    }
}

4. 配置视图解析器

Spring Boot默认使用Thymeleaf作为模板引擎,你可以通过application.propertiesapplication.yml来配置视图前缀和后缀。

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

或者在Java配置中添加视图解析器:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        registry.viewResolver(viewResolver);
    }
}

5. 运行应用

运行Spring Boot应用,通常只需要调用SpringApplication.run()方法。

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意事项

  • 端口配置:如果你想改变应用的默认端口(8080),可以在application.propertiesapplication.yml中设置:
server.port=8081
  • 安全性和CORS:默认情况下,Spring Boot不会开启CORS支持,如果需要跨域请求,需要额外配置。
  • 静态资源管理:Spring Boot默认会从/static/public/resources/META-INF/resources目录下提供静态资源。

以上步骤涵盖了Spring Boot整合Spring MVC的基本流程,实际项目中可能还需要考虑更多的细节,如异常处理、国际化、拦截器等。

你可能感兴趣的:(JAVA,经验分享,java,spring)