大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
mvn archetype:generate -DinteractiveMode=false -DgroupId=cn.koali -DartifactId=springboot_demo -Dversion=1.0.0-SNAPSHOT
各个参数的含义参考官网 3.
创建成功,会提示项目生成的地址。
4. 然后同理使用IDEA打开刚刚命令行生成的项目。 5. 接下来打开 SpringBoot简单教程
找到Build with Maven复制依赖等等即可。
填写相应的Group,Artifact,然后选择需要的依赖即可以。
@Configuration
public class RouterFunctionConfiguration {
@Bean
public RouterFunction<ServerResponse> webFlux() {
return RouterFunctions.route(RequestPredicates.GET("/webFlux"), request -> {
Mono<String> str = Mono.just("Hello World").delayElement(Duration.ofMillis(10));
return ServerResponse.ok().body(str, String.class);
});
}
}
与Web MVC类似。我们声明我们的路由类为 @Configuration,然后初始化一个Bean。 在Web Flux请求的接口是RequestServer,响应的接口是ResponseServer。 其中RouterFunction提供了route,通过在route这个方法我们设置RequestPredicates 的路由行为,从而达到接受请求。
//web mvc
@GetMapping("/webServlet")
public String webServlet(){
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
return "Error during thread sleep";
}
return "Hello World";
}
//web flux
@Bean
public RouterFunction<ServerResponse> webFlux() {
return RouterFunctions.route(RequestPredicates.GET("/webFlux"), request -> {
Mono<String> str = Mono.just("Hello World").delayElement(Duration.ofMillis(10));
return ServerResponse.ok().body(str, String.class);
});
}
假设有1000个用户,循环10次的发起请求。
JMeter分别填写请求的路径
web Flux耗时10秒左右,而且请求不会被拒绝。
web MVC耗时21秒左右,请求多数被拒绝。