目录
1. Servlet Web Applications
1.1. The “Spring Web MVC Framework”
周末闲来无事,准备写一个实现幂等的注解,准备用springboot搭建框架时,发现配置的SpringMVC注解未生效,百度了一圈,也没看到官方的文档,遂萌生了阅读英文文档的念头。
从今天开始,与君共勉。。。
官网地址:https://spring.io/projects/spring-boot/#learn
先从springmvc看起咯
首先是总览
SpringBoot非常适合web应用程序开发。你可以使用嵌入式Tomcat、Jetty、Undertow或Netty来创建自包含的HTTP服务器。大多数web应用程序使用spring-boot-starter-web模块快速启动和运行。你还可以选择使用spring-boot-starter-web-flux模块构建反应式web应用程序。
存疑:什么是reactive web
如果你还没有开发过SpringBoot web应用程序,你可以跟着“Hello World!”入门部分中的示例。
接着我们往下看
如果你想构建基于servlet的web应用程序,可以利用Spring Boot的Spring MVC或Jersey自动配置。
SpringWebMVC框架(通常称为“SpringMVC”)是一个丰富的“模型-视图-控制器”Web框架。Spring MVC让你可以创建特殊的@Controller或@RestController的bean来处理传入的HTTP请求。控制器中的方法通过使用@RequestMapping注解,映射到HTTP。
以下代码展示了一个典型的@RestController注解,提供JSON数据:
慢慢看,不要急,睡一觉回来看都行~
“WebMvc.fn”,功能变体,将路由配置与请求的实际处理分离开来,如下例所示:
接下来,让我们看看,它是怎么将配置,与实际处理分离开的
@Configuration(proxyBeanMethods = false)
public class MyRoutingConfiguration {
private static final RequestPredicate ACCEPT_JSON = accept(MediaType.APPLICATION_JSON);
@Bean
public RouterFunction routerFunction(MyUserHandler userHandler) {
return route()
.GET("/{user}", ACCEPT_JSON, userHandler::getUser)
.GET("/{user}/customers", ACCEPT_JSON, userHandler::getUserCustomers)
.DELETE("/{user}", ACCEPT_JSON, userHandler::deleteUser)
.build();
}
}
@Component
public class MyUserHandler {
public ServerResponse getUser(ServerRequest request) {
...
return ServerResponse.ok().build();
}
public ServerResponse getUserCustomers(ServerRequest request) {
...
return ServerResponse.ok().build();
}
public ServerResponse deleteUser(ServerRequest request) {
...
return ServerResponse.ok().build();
}
}
SpringMVC是SpringFramework核心的一部分,reference documentation中提供了详细信息。Spring.io/guides上还提供了几个涵盖Spring MVC的指南。
不妨点进入看看,是一些典型的熟悉springboot的指南~
你可以定义任意多个RouterFunction bean,以便将router的定义模块化。你同样可以给Bean设置优先级。
okok,今天的文档就看到这里啦,明个有时间的话,再一起看看
1.1.1. Spring MVC Auto-configuration springmvc的自动化配置