6.部署Spring Boot应用程序

在部署应用程序时,Spring Boot的灵活打包选项提供了很多选择。您可以将Spring Boot应用程序部署到各种云平台,容器映像(例如Docker)或虚拟机/真实机上。

6.1。部署到云

Spring Boot的可执行jar已为大多数流行的云PaaS(平台即服务)服务商准备就绪。这些服务商往往要求您“自带容器”。他们管理应用程序流程(不是专门用于Java应用程序),因此他们需要一个中间层,以使您的应用程序适应云中正在运行的流程的概念。

两家受欢迎的云提供商,Heroku和Cloud Foundry,采用了“buildpack”方法。buildpack将部署的代码包装在启动应用程序所需的任何内容中。它可以是JDK,也可以是对java,嵌入式Web服务器或成熟的应用程序服务器的调用。一个buildpack是可插入的,但是理想情况下,您应该能够通过尽可能少的自定义来获得它。这减少了您无法控制的功能的占用空间。它使开发和生产环境之间的差异最小化。

理想情况下,您的应用程序像Spring Boot可执行jar一样,具有打包运行所需的一切。

在本节中,我们研究如何使在“入门”部分中开发的简单应用程序启动并在云中运行。

6.1.1. Cloud Foundry

6.1.2. Heroku

6.1.3. OpenShift

6.1.4。亚马逊网络服务(AWS)

6.1.5. Boxfuse 和 Amazon Web Services

6.1.6. Google Cloud

跳过

6.2。安装Spring Boot应用程序

除了使用java -jar来运行Spring Boot应用程序外,还可以为Unix系统制作完全可执行的应用程序。完全可执行的jar可以像任何其他可执行二进制文件一样执行,也可以向init.dsystemd注册。这使得在普通生产环境中安装和管理Spring Boot应用程序变得非常容易。

完全可执行的jar通过将额外的脚本嵌入文件的开头来工作。当前,某些工具不接受此格式,因此您可能无法始终使用此技术。例如,jar -xf可能无声地失败提取出可以完全执行的jar或war。建议仅当您打算直接执行jar或war时才使其完全可执行,而不是使用java -jar来运行它或将其部署到servlet容器中。

不能使zip64格式的jar文件完全可执行。尝试这样做将导致直接执行或使用java -jar运行时,jar文件被报告为损坏。包含一个或多个zip64格式嵌套jar的标准格式jar文件可以完全执行。

要使用Maven创建一个“完全可执行”的jar,请使用以下插件配置:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>

以下示例显示了等效的Gradle配置:

bootJar {
launchScript()
}

然后,您可以通过键入./my-application.jar(my-application是artifact的名称)来运行应用程序。包含jar的目录用作应用程序的工作目录。

6.2.1。支持的操作系统

6.2.2。Unix / Linux服务

6.2.3. Microsoft Windows Services

跳过

7. Spring Boot CLI

Spring Boot CLI是一个命令行工具,如果您想快速开发Spring应用程序,可以使用它。它使您可以运行Groovy脚本,这意味着您具有类似Java的熟悉语法,而没有太多样板代码。您还可以引导一个新项目或为其编写自己的命令。

跳过

8.构建工具插件

跳过

20191127 Spring Boot官方文档学习(6-8)的更多相关文章

  1. 20191127 Spring Boot官方文档学习(9.1-9.3)

    9."使用方法"指南 9.1.Spring Boot应用程序 9.1.1.创建自己的FailureAnalyzer FailureAnalyzer被包装在FailureAnalys ...

  2. 20191127 Spring Boot官方文档学习(4.10)

    4.10.使用SQL数据库 从使用JdbcTemplate直接的JDBC访问到完整的"对象关系映射"技术(例如Hibernate),Spring框架为使用SQL数据库提供了广泛的支 ...

  3. 20191127 Spring Boot官方文档学习(4.11)

    4.11.使用NoSQL技术 Spring Data提供了其他项目来帮助您访问各种NoSQL技术,包括: Redis MongoDB Neo4J Solr Elasticsearch Cassandr ...

  4. 20191127 Spring Boot官方文档学习(4.12)

    4.12.缓存(Caching) Spring框架提供了对应用程序透明添加缓存的支持.从本质上讲,抽象将缓存应用于方法,从而根据缓存中可用的信息减少执行次数.缓存逻辑是透明应用的,不会对调用者造成任何 ...

  5. 20191127 Spring Boot官方文档学习(4.13)

    4.13.Messaging Spring框架为与消息传递系统集成提供了广泛的支持,从使用JmsTemplate简化JMS API到完整的异步接收消息的基础结构.Spring AMQP为高级消息队列协 ...

  6. 20191127 Spring Boot官方文档学习(4.14-4.17)

    4.14.使用RestTemplate调用REST服务 如果需要从应用程序调用远程REST服务,则可以使用Spring Framework的RestTemplate类.由于RestTemplate实例 ...

  7. 20191127 Spring Boot官方文档学习(4.18-4.24)

    4.18.JTA的分布式事务 通过使用Atomikos或Bitronix嵌入式事务管理器,Spring Boot支持跨多个XA资源的分布式JTA事务.部署到合适的Java EE应用程序服务器时,还支持 ...

  8. 20191127 Spring Boot官方文档学习(4.25)

    4.25. Testing Spring Boot提供了许多实用程序和注解,可以在测试应用程序时提供帮助.测试支持由两个模块提供:spring-boot-test包含核心项,spring-boot-t ...

  9. 20191127 Spring Boot官方文档学习(5)

    5.Spring Boot Actuator:可投入生产的功能 Spring Boot包含许多其他功能,可帮助您在将应用程序投入生产时监控和管理您的应用程序.您可以选择使用HTTP端点或JMX管理和监 ...

随机推荐

  1. Python 3标准库第一天讲解总结

    一.很多知识自己没有理解透: 二.课件准备不足: 三.第一次讲解有点紧张: 四.口才也不是很好,很多有断片的情况: 五.SB式的坚持:

  2. springboot项目作为其他项目子项目

    <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/P ...

  3. kafka——分布式的消息队列系统

    总听公司人说kafka kafka... 所以这玩意到底是个啥? 好像是一个高级版的消息队列,什么高吞吐量,数据持久,消息均衡,emmm https://blog.csdn.net/nawenqian ...

  4. SpringBoot 1.X版本设置Https访问以及跨域https访问的问题

    最近在做的一个项目中出现了Https域向非Https域发送ajax请求无法通过的问题 Mixed Content: The page at was loaded over HTTPS, but req ...

  5. C#内存占用释放

    序言 系统启动起来以后,内存占用越来越大,使用析构函数.GC.Collect什么的也不见效果,后来查了好久,找到了个办法,就是使用 SetProcessWorkingSetSize函数.这个函数是Wi ...

  6. POJ 2528 Mayor’s posters (线段树段替换 && 离散化)

    题意 : 在墙上贴海报, n(n<=10000)个人依次贴海报,给出每张海报所贴的范围li,ri(1<=li<=ri<=10000000).求出最后还能看见多少张海报. 分析 ...

  7. T3

    T3构造图

  8. event.stopPropagation()和event.preventDefault(),return false的区别

    我写公司的官网遇到一个问题,轮播图的上一层有一块内容,用鼠标拖动那块内容的时候下一层的轮播图也会跟着拖动,而上面的那层的内容是不会动的,我想这就是冒泡事件在作祟了吧 跟冒泡事件相关的,我想到三个: 1 ...

  9. (77)一文了解Redis

    为什么我们做分布式使用Redis? 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里对  ...

  10. Oracle升级11.2.0.3-11.2.0.4(Windows)

    背景:解决11.2.0.3带来的ora-08103错误,将数据库seinescm升级到11.2.0.4版本方法:另辟路劲安装11.2.0.4版本数据库软件,再对现有的数据库进行升级步骤:1.    检 ...