详解弹簧引导应用的启动和停止(开始启动)

  

弹簧引导,作为春天框架对“约定优先于配置(约定优于配置)“理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行,产品级别的基于春天框架的应用,大部分弹簧引导应用只需要非常少的配置就可以快速运行起来,是一个与微服务(MicroServices)相当契合的微框架。

  

下面主要有两种方式进行弹簧引导的关闭:通过HTTP发送关闭信号,或者通过服务停止的方式。

  

  

该方式主要依赖弹簧引导致动器的端点特性,具体步骤如下:

  

<强> 1,在pom.xml中引入致动器依赖

        & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-actuator   & lt;/dependency>      

<强> 2,开启关闭端点

  

弹簧引导致动器的关闭端点默认是关闭的,因此在应用程序。属性中开启关闭端点:

        #启用关闭   endpoints.shutdown.enabled=true   #禁用密码验证   endpoints.shutdown.sensitive=false      

指定路径、IP端口

        关闭#指定端点的路径   endpoints.shutdown.path=/custompath   #也可以统一指定所有端点的路径“management.context-path=/管理”   #指定管理端口和IP   management.port=8081   management.address=127.0.0.1      

<强> 3,发送关闭信号

  

关闭的默认url为主持人:港口/关闭,当需要停止服务时,向服务器后该请求即可,如:

        curl - x发布主机:端口/关闭      

将得到形如{“消息”:“关闭,再见……”}的响应

  

<强> 4,安全设置

  

可以看的出,使用该方法可以非常方便的进行远程操作,但是需要注意的是,正式使用时,必须对该请求进行必要的安全设置,比如借助spring-boot-starter-security进行身份认证:

  

pom.xml添加安全依赖

        & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-security   & lt;/dependency>      

<强>开启安全验证
  

  

在application.properties中变更配置

        #开启关闭的安全验证   endpoints.shutdown.sensitive=true   #验证用户名   security.user.name=admin   #验证密码   security.user.password=秘密   #角色   management.security.role=超级用户      

注意:如果引入了安全框架后,按照上面的配置,那么全部请求都会要求输入账号密码才能访问。

  

  

该方式主要借助官方的spring-boot-maven-plugin创建“完全可执行的jar,这中jar包内置一个shell脚本,可以方便的将该应用设置为Unix/Linux的系统服务(init。d服务),官方对该功能在CentOS和Ubuntu进行了测试,对于OS X和FreeBSD,可能需要自定义。具体步骤如下:

  

<强> 1,在pom.xml中引入插件:

        & lt; plugin>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-maven-plugin   & lt; configuration>   & lt; executable> true   & lt;/configuration>   & lt;/plugin>之前      

注意:标红部分的意思是是否是可以执行的。

  

<强> 2,赋予可执行权限:

        chmod u + x app.jar      

说明:到了这一步之后基本可以在命令行运行,先打包出JAR包,然后启动,比如。/应用程序。jar开始即可启动。

  

<强> 3,设置为系统服务

  

将你的应用打成JAR包,部署到服务器,假设部署路径为/var/应用程序包名为app.jar,通过如下方式将应该设置为一个系统服务:

        sudo ln - s/var/app/app.jar/etc/init.d/app      

<强> 4。以系统服务的方式管理

  

接下来,就可以使用我们熟悉的服务foo开始|停止|重启来对应用进行启停等管理了

        sudo服务应用程序启动|停止      

命令将得到形如启动|停止(PID)的结果反馈

  

默认PID文件路径:<代码>/var/run/appname/appname.pid

  

默认日志文件路径:<代码>/var/log/浏览器名称。日志

  

详解弹簧引导应用的启动和停止(开始启动)