Spring Boot 部署

打成jar包

若是你使用的是maven来管理项目,执行如下命令既能够java

cd 项目跟目录(和pom.xml同级)
mvn clean package
## 或者执行下面的命令
## 排除测试代码后进行打包
mvn clean package  -Dmaven.test.skip=true

打包完成后jar包会生成到target目录下,命名通常是 项目名+版本号.jarspring

启动jar包命令数据库

java -jar  target/spring-boot-scheduler-1.0.0.jar

这种方式,只要控制台关闭,服务就不能访问了。下面咱们使用在后台运行的方式来启动:安全

nohup java -jar target/spring-boot-scheduler-1.0.0.jar &

也能够在启动的时候选择读取不一样的配置文件服务器

java -jar app.jar --spring.profiles.active=dev

也能够在启动的时候设置jvm参数app

java -Xms10m -Xmx80m -jar app.jar &

 

---------我是分割线---------jvm

使用外部配置文件

在应用程序中有不少配置项,例如数据库链接地址、日志文件位置、应用服务器配置等等。为了安全与灵活性,咱们推荐将Spring Boot的配置文件放在生产环境的服务器上,并严格控制访问权限。在运行应用时能够经过命令行参数指定配置文件:maven

java -jar location_of_your_jar_file.jar --spring.config.location=location_of_your_config_file.properties

这样作的好处是:spring-boot

  • 配置位于生产环境中,数据库链接等私密信息不容易泄露
  • 灵活性强,同一份代码(包括构建的jar包)能够应用于不一样的环境配置(开发、测试、生产)

使用Profile区分环境

在某些状况下,应用的某些业务逻辑可能须要有不一样的实现。例如邮件服务,假设EmailService中包含的send(String email)方法向指定地址发送电子邮件,可是咱们仅仅但愿在生产环境中才执行真正发送邮件的代码,而开发环境里则不发送以避免向用户发送无心义的垃圾邮件。测试

咱们能够借助Spring的注解@Profile实现这样的功能,这样须要定义两个实现EmailService借口的类:

@Service
@Profile("dev")
class DevEmailService implements EmailService {

    public void send(String email) {
        //Do Nothing
    }
}

@Service
@Profile("prod")
class ProdEmailService implements EmailService {

    public void send(String email) {
        //Real Email Service Logic
    }
}

@Profile("dev")代表只有Spring定义的Profile为dev时才会实例化DevEmailService这个类。那么如何设置Profile呢?

在配置文件中指定

在application.properties中加入:

spring.profiles.active=dev

经过命令行参数

java -jar app.jar --spring.profiles.active=dev
相关文章
相关标签/搜索