SpringBoot2.1(3)集成Thymeleaf、WebFlux及Jar包运行

《回顾》

上一篇,介绍了Springboot2的常用配置,集成freemarker开发页面及配置Springboot自带的日志。

在这里强调下,Springboot的日志同时配置「logging.path」和「logging.file」时,只有后者生效。

如果要配置路径,也要配置日志文件名,可以这样

「logging.file=/opt/logs/xxx/web.log」

 

本篇,将集成Thymeleaf、WebFlux

并且,构建Jar包脱离IDE独立运行。

 

集成Thymeleaf

 

它是什么?

Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。

类似于Freemarker,但是它不像Freemarker那样,包含一些不符合HTML语意的标签。

因此Thymeleaf可以脱离Java环境,独立运行于浏览器,方便前后端独立调试。

 

1、引入Maven依赖,文件「pom.xml」

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 

2、配置Springboot支持,文件「application.properties」

# 文件路径
spring.thymeleaf.prefix=classpath:/templates/
# 编码
spring.thymeleaf.encoding=UTF-8
# 是否缓存
spring.thymeleaf.cache=false
# 后缀
spring.thymeleaf.suffix=.html
# 使用不严谨的html5,默认HTML5
spring.thymeleaf.mode=LEGACYHTML5

 

3、动手写代码

 

新建「IndexController.java」

新建「src/resources/templates/index.html」

 

结构和上一篇一致。

 

index.html

 

代码

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
   <meta charset="UTF-8">
   <title>SpringBoot演示</title>
</head>
<body>
   这是一个thymeleaf页面。
   <p>
       欢迎你 :
       <span th:text="${name} ?: '匿名用户' " style="color: red"></span>
   </p>
</body>
</html>

 

注意,需要引入Thymeleaf支持

<html lang="en" xmlns:th="http://www.thymeleaf.org">

 

Thymeleaf,内置于html标签中。

常用方法包含「th:if」、「th:text」、「th:value」、「th:src」等。基本是原HTML标签前面 +「th:」。

 

IndexController.java

代码和上篇一致,分为两个方法

1、不带参数请求首页

2、带参数请求首页

如下

@Controller
public class IndexController {

   @GetMapping("/index")
   public String index(){
       return "index";
   }

   // 带参数访问首页

   @GetMapping("/index/{name}")
   public String index(ModelAndView modelAndView
           , @PathVariable String name){
       modelAndView.addObject("name",name);
       return "index";

   }
}


 

运行结果如下:

  • 无参数访问首页

 

  • 带参数访问首页

 

集成WebFlux

 

它是什么?

WebFlux是一个典型非阻塞异步的框架,它的核心是基于Reactor的相关API实现的,它不依赖于Servlet。

本章,简单介绍WebFlux使用及对比性能,后面将拿出一章,详细分析WebMVC和WebFlux的差别和WebFlux更深入用法。

 

1、Maven依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

2、新增支持WebFlux方法。

@GetMapping("/webfulx_index")
public Mono<String> webfulxIndex(){
   return Mono.just("index");
}

注意它和WebMVC返回值的差异。

 

访问页面:

 

 

3、测试

 

3.1、WebMVC和WebFlux方法中,各增加一秒延迟。

如下:

3.2、模拟200用户,并发访问60秒。

JVM线程数对比结果(红色WebMVC、蓝色WebFlux):

 

 

请求吞吐量对比结果:

 

  • WebMVC

 

  • WebFlux

 

简单的测试,可得出结论,WebFlux可以使用更少的JVM线程,提供更高效的服务响应。

再次补充,Springboot系列接近尾声时,我将拿出一篇文章,专门对比分析WebMVC和WebFlux的差异。

 

Jar包运行

开发完Springboot web应用以后,通常会以Jar包或War包的形式,运行于线上服务器。

本篇文章,先介绍以Jar包运行。

如何构建Jar包?

 

构建成功后将**.jar 文件,copy到任意位置

执行

java -jar **.jar

如下:

 

启动成功后,浏览器访问地址即可。

** 我的Java11没有配置环境变量,所以在执行java命令时要进入到Java存放目录,如果你已经配置过环境变量,可以直接使用java命令启动。

 

博客内所有文章,每周从公众号同步一次。

文章源码均可从公众号获取。

如果您可以关注下,那就好了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值