Spring Boot 旨在简化Spring应用的初始搭建以及开发过程,它通过约定优于配置的原则来减少XML配置,使得开发者可以专注于业务逻辑的实现。Spring Boot 默认就集成了Spring MVC,这意味着你无需过多的配置就能开始编写控制器。
以下是Spring Boot整合Spring MVC的基本步骤,以及一些实战中的注意事项:
1. 添加依赖
在pom.xml
或build.gradle
中添加Spring Web的依赖,这将自动包含Spring MVC所需的所有依赖。
Maven示例:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
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.properties
或application.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.properties
或application.yml
中设置:
server.port=8081
- 安全性和CORS:默认情况下,Spring Boot不会开启CORS支持,如果需要跨域请求,需要额外配置。
- 静态资源管理:Spring Boot默认会从
/static
、/public
、/resources
或/META-INF/resources
目录下提供静态资源。
以上步骤涵盖了Spring Boot整合Spring MVC的基本流程,实际项目中可能还需要考虑更多的细节,如异常处理、国际化、拦截器等。