Spring-boot打包(打War包,打Jar包并支持配置外置)

1. 创建Spring-boot工程

打开IDEA通过Spring Initializr新建一个基于Maven的WEB工程,默认命名com.example:demo:0.0.1-SNAPSHOT,如下图所示

2.编写一个测试RestApi

在主工程下添加一个Controller包,编写一个TestController,返回“hello spring-boot”

然后点击右上角调试运行,启动完成后,打开浏览器输入127.0.0.1:8080,可以看到输出结果,spring-boot默认采用jar包方式运行,内置tomcat,默认监听8080端口

3.把Spring-boot工程打包为Jar包

 spring-boot默认为jar包方式,编写好程序后,只需要运行maven的package命令,在target目录下便会生成对应的jar包,本例为demo-0.0.1-SNAPSHOT.jar,如下图所示:

生成好的jar包可以直接通过命令来启动运行,打开控制台,定位到target目录下,运行:java -jar demo-0.0.1-SNAPSHOT.jar,就可以启动Spring-boot的jar包了,我们可以将启动命令写成一个startup.bat或者startup.sh的启动脚本,部署到服务器上后,直接调用脚本启动Spring-boot工程。 

Spring-boot默认从application.properties或application.yml读取配置信息,Spring程序会按优先级从下面这些路径来加载application.properties配置文件

  • 当前目录下的/config目录
  • 当前目录
  • classpath里的/config目录
  • classpath 跟目录

因此,要外置配置文件就很简单了,直接把配置文件放在对应的目录即可

4. Spring-boot打War包

Spring-boot打war包需要在上面工程基础上调整三个地方

1. 修改pom.xml打包类型为war,如下图

2. 添加spring-boot-starter-tomcat依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3. 实现一个ServletInitializer类添加到工程代码中:

package com.example.demo;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(DemoApplication.class); } }

这三步完成后就可以添加tomcat配置进行调试了,或者运行maven的package命令进行打包target目录下便会生成demo-0.0.1-SNAPSHOT.war

 

posted @ 2018-08-31 14:42  kuntaljy  阅读(2114)  评论(0编辑  收藏  举报