欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解SpringBoot应用服务启动与安全终止

程序员文章站 2023-12-10 18:01:10
springboot应用服务启动 参照官方示例工程可以快速搭建简单springboot应用,官方连接如下: 闲话少叙,上代码: package hello;...

springboot应用服务启动

参照官方示例工程可以快速搭建简单springboot应用,官方连接如下:
闲话少叙,上代码:

package hello;

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@controller
@enableautoconfiguration
public class samplecontroller {

  @requestmapping("/")
  @responsebody
  string home() {
    return "hello world!";
  }

  public static void main(string[] args) throws exception {
    springapplication.run(samplecontroller.class, args);
  }
}

通过该main()函数作为入口,可以启动springboot服务。虽然这里只有几行代码,当时已经是一个完整的web程序。

有几个注解需要特殊说明一下,我在开发的时候就在这几个注解上吃了不少亏。

@enableautoconfiguration:这个注解告诉spring boot根据添加的jar依赖猜测你想如何配置spring。由于spring-boot-starter-web添加了tomcat和spring mvc,所以auto-configuration将假定你正在开发一个web应用并相应地对spring进行设置。

@componentscan:注解搜索beans,并结合@autowired构造器注入。

@springbootapplication:等价于以默认属性使用@configuration,@enableautoconfiguration和@componentscan,不过该注解只搜索该包同级的包和下级的包!!!!!!

springboot应用安全终止

由于springboot集成了tomcat,所以当springboot应用启动之后,不能像对普通的tomcat操作一下来操作springboot,不过springboot封装了启动,停止的方法。

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

主要有两种方式:通过http发送shutdown信号,或者通过service stop的方式,本文只介绍http方式。

1.在pom.xml中引入actuator依赖

<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-actuator</artifactid>
</dependency>

2.在application.properties文件开启shutdown endpoint,springboot的endpoints.shutdown.enabled默认是关闭的。

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

3.发送停止信号,使用curl向服务器发送post请求:

curl -x post host:port/shutdown

 将会得到返回消息如下:

{"message":"shutting down, bye..."}

4.可以看出此方法非常方便,但是也很不安全,正式使用时,必须对该请求进行必要的安全设置,可以借助spring-boot-starter-security进行身份认证:
pom.xml添加security依赖

<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-security</artifactid>
</dependency>

application.properties中变更配置

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

 指定路径、ip、端口

#指定shutdown endpoint的路径
endpoints.shutdown.path=/custompath
#也可以统一指定所有endpoints的路径`management.context-path=/manage`
#指定管理端口和ip
management.port=8081
management.address=127.0.0.1

 以上所述是小编给大家介绍的springboot应用服务启动与安全终止详解整合,希望对大家有所帮助