问:TongWeb支持Spring Boot,Spring Cloud吗?
答:主要看Spring Boot各个版本需要的JavaEE的web容器规范是多少,另外了解应用的运行方式。遵从以下规则:
1. 以web应用传部署方式,则Spring Boot2.x可用TongWeb7、TongWeb8企业版,Spring Boot3.x只能用TongWeb8.0/7.0.8企业版。
2. 以嵌入式方式java -jar方式运行的,则只能采用TongWeb7/8嵌入式版本。
3. Spring Cloud Gateway的运行不需要web容器, 所以仅可用TongWeb嵌入版的reactor。
注意:Spring Boot的嵌入式运行方式与web运行方式虽然可以互转,但要考虑项目后期维护的便利性, TongWeb企业版与嵌入版也是经常卖错的版本。
下图为Spring Boot2.X官方对容器的要求。
下图为Spring Boot3.X官方对容器的要求。
常见的使用问题:
问题一:有些应用框架采用Spring Cloud Gateway,运行在非servlet容器上,所以仅可用TongWeb嵌入版的reactor,无法运行在TongWeb企业版上。见Spring官网说明:
问题二:不能单纯以应用包为jar包或war包来判断采用TongWeb嵌入版或企业版,个别情况下有的应用为war包,但仍以 java -jar app.war的嵌入式方式来运行。
问题三:支持Spring Boot3.x为什么要使用单独的TongWeb版本?
因为从Jakarta EE9规范开始 javax命名空间变为 jakarta命名空间,若运行Spring Boot3.x版本。
1. TongWeb7.0.4.x及以下版本不支持Jakarta EE9规范,也就是不支持Spring Boot3.x版本。
2. TongWeb7.0.8/8.0企业版需要生成Jakarta EE版本来支持Spring Boot3.x应用。
3. TongWeb7/8嵌入版需要引入支持Spring Boot3.x的jar来运行。
问题四:替换了嵌入版的tomcat,如何判断替换成功?
当嵌入版启动时,看到TongWeb图标时表示采用TongWeb嵌入版的Spring Boot启动。
附:TongWeb7.0.E.x嵌入版打包示例
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>1.0.0</groupId>
<artifactId>springboot-tw</artifactId>
<version>1</version>
<packaging>jar</packaging>
<name>springboot-tw</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.8.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 不用tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--引入tongweb包 -->
<dependency>
<groupId>com.tongweb.springboot</groupId>
<artifactId>tongweb-spring-boot-starter</artifactId>
<version>2.x.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.tongweb</groupId>
<artifactId>tongweb-embed</artifactId>
<version>7.0.E.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.tong.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>