600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Spring Boot(三) 将war文件部署到tomcat Thymeleaf示例

Spring Boot(三) 将war文件部署到tomcat Thymeleaf示例

时间:2018-08-07 23:10:21

相关推荐

Spring Boot(三) 将war文件部署到tomcat    Thymeleaf示例

Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例

一 、 将war文件部署到tomcat

对于Spring Boot WAR部署,需要执行三个步骤:

扩展SpringBootServletInitializer根据提供标记嵌入式servlet容器。更新包装为 War测试工具

Spring Boot 1.4.2.RELEASETomcat 8.5.9Maven 3注:在Spring Boot中,具有嵌入服务器解决方案的最终可执行JAR文件可能不适合所有生产环境,特别是部署团队(具有良好的服务器优化和监控技能知识,但缺乏开发经验的团队),他们希望完全控制服务器,并且不能接触代码。

扩展SpringBootServletInitializer

使现有的 @SpringBootApplication 类扩展 SpringBootServletInitializer

SpringBootWebApplication.java 文件内容如下:

import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringBootWebApplication {public static void main(String[] args) throws Exception {SpringApplication.run(SpringBootWebApplication.class, args);}}

SpringBoot war 部署

SpringBootWebApplication.java 文件的内容如下 -

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;@SpringBootApplicationpublic class SpringBootWebApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootWebApplication.class);}public static void main(String[] args) throws Exception {SpringApplication.run(SpringBootWebApplication.class, args);}}

如果要为部署创建了一个额外的SpringBootWebApplication类,请确保告诉Spring Boot要从哪个主类开始启动程序:在 pom.xml 文件中增加以下内容指定 -

<properties><start-class>com.yiibai.NewSpringBootWebApplicationForWAR</start-class></properties>

提供标记嵌入式Servlet容器

在 pom.xml 文件中增加以下内容指定 -

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- marked the embedded servlet container as provided --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency></dependencies>

更新包装为War

在pom.xml中添加

<packaging>war</packaging>

完成,mvn打包并将$project/target/xxx.war复制到Tomcat发布目录进行部署。

完整的Spring Boot War + Tomcat 部署

以Spring Boot Thymeleaf为例,更新它并手动部署到Tomcat。更新现有的SpringBootWebApplication并让它扩展SpringBootServletInitializer类

SpringBootWebApplication.java文件的完整代码如下所示 -

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;@SpringBootApplicationpublic class SpringBootWebApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootWebApplication.class);}public static void main(String[] args) throws Exception {SpringApplication.run(SpringBootWebApplication.class, args);}}

更新打包包,并按提供的标记spring-boot-starter-tomcat。pom.xml文件的完整代码如下所示 -

<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><artifactId>spring-boot-web-thymeleaf</artifactId><packaging>war</packaging><name>Spring Boot Web Thymeleaf Example</name><description>Spring Boot Web Thymeleaf Example</description><url></url><version>1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.2.RELEASE</version></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- marked the embedded servlet container as provided --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><!-- hot swapping, disable cache for template, enable live reload --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><!-- Optional, for bootstrap --><dependency><groupId>org.webjars</groupId><artifactId>bootstrap</artifactId><version>3.3.7</version></dependency></dependencies><build><plugins><!-- Package as an executable jar/war --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

这是可选的,将contextPath更新为/yiibai以方便稍后作为演示。准备好WAR部署文件。application.properties 文件的完整内容如下所示 -

welcome.message: Hello Yiibaiserver.contextPath=/yiibai

使用maven执行打包 ,后在target目录下得到一个war文件 。 放到Tomcat的webapps目录下 开启tomcat即可访问:http://localhost:8080/yiibai/ ,程序没有错误问题,应该会看到以下结果 -

二 、Thymeleaf示例

这是一个Spring Boot Web应用示例,使用嵌入式Tomcat + Thymeleaf模板引擎,并将其作为可执行JAR文件。使用相关技术

Spring Boot 1.4.2.RELEASESpring 4.3.4.RELEASEThymeleaf 2.1.5.RELEASETomcat Embed 8.5.6Maven 3Java 8项目目录

项目依赖

声明 spring-boot-starter-thymeleaf以获得开发Spring + Thymeleaf Web应用程序所需的任何程序类库。

pom.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><artifactId>spring-boot-web-thymeleaf</artifactId><packaging>jar</packaging><name>Spring Boot Web Thymeleaf 示例</name><description>Spring Boot Web Thymeleaf 示例描述</description><url></url><version>1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.2.RELEASE</version></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- hot swapping, disable cache for template, enable live reload --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><!-- Optional, for bootstrap --><dependency><groupId>org.webjars</groupId><artifactId>bootstrap</artifactId><version>3.3.7</version></dependency></dependencies><build><plugins><!-- Package as an executable jar/war --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

显示项目依赖关系:

提示: spring-boot-devtools这个spring-boot-devtools有助于禁用缓存并启用热插拔,以便开发人员总是看到最后的更改。 有利于发展。 阅读这篇 - Spring Boot - 开发工具。尝试修改Thymeleaf模板或属性文件,刷新浏览器以查看更改立即生效。

Spring Boot

使用@SpringBootApplication进行注释。 运行此类来启动Spring Boot Web应用程序。

SpringBootWebApplication.java

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringBootWebApplication {public static void main(String[] args) throws Exception {SpringApplication.run(SpringBootWebApplication.class, args);}}

一个简单的Spring控制器类: WelcomeController.java 代码如下 -

import java.util.Map;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class WelcomeController {// inject via application.properties@Value("${welcome.message:test}")private String message = "Hello World";@RequestMapping("/")public String welcome(Map<String, Object> model) {model.put("message", this.message);return "welcome";}}

Thymeleaf+资源+静态文件

对于Thymeleaf模板文件,放入 src/main/resources/templates/ 目录下, src/main/resources/templates/welcome.html 文件代码如下 -

<!DOCTYPE HTML><html xmlns:th=""><head><title>Spring Boot Thymeleaf Hello World示例</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css"href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" /><link rel="stylesheet" th:href="@{/css/main.css}"href="../../css/main.css" /></head><body><nav class="navbar navbar-inverse"><div class="container"><div class="navbar-header"><a class="navbar-brand" href="#">Spring Boot</a></div><div id="navbar" class="collapse navbar-collapse"><ul class="nav navbar-nav"><li class="active"><a href="#">首页</a></li><li><a href="#about">关于</a></li></ul></div></div></nav><div class="container"><div class="starter-template"><h1>Spring Boot Web Thymeleaf示例</h1><h2><span th:text="'Message: ' + ${message}"></span></h2></div></div><!-- /.container --><script type="text/javascript"src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script></body></html>

对于静态文件,如CSS或Javascript,将它们放入 /src/main/resources/static/ 目录, /src/main/resources/static/css/main.css文件代码如下 -

h1{font-size: 20pt;}h2{font-size: 16pt;}

对于属性文件,放入 /src/main/resources/ 目录中, /src/main/resources/application.properties 文件中的代码内容如下 -

welcome.message: Hello, Spring Boot

运行

启动Spring Boot Web应用程序,使用Maven命令:mvn spring-boot:run,运行结果输出结果如下 - 可以再浏览器中访问localhost:8080测试创建可执行jar

打包项目以创建可执行的JAR文件。使用Maven命令:mvn clean package, 执行可执行jar:F:\worksp\springboot\spring-boot-web-thymeleaf> java -jar target/spring-boot-web-thymeleaf-1.0.jar在浏览器中访问localhost:8080测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。