Spring Boot介绍

image-20240407210527918

Spring Boot搭建

涉及Java Web开发的必备工具就不赘述了(如Java、Maven、IDEA等),这里直接介绍Spring Boot搭建

搭建Spring Boot有两种方式:

  • IDEA集成的Spring Initializr:IDEA在创建新项目时就有"Spring Initializr"的选项,具体搭建方式可以参考这篇文章

  • Spring 官网 start.spring.io:官方提供了一个在线网站用于配置Spring Boot,即Spring Initializr,选择需要的选项后点击"GENERATE",会得到一个压缩包,解压后用IDEA打开即可(Maven会自动下载依赖)

    image-20240407212652448

    我个人更喜欢这种方式,下面做一个视频演示

找到项目主类的java文件(如DemoApplication.java),添加一个名为/hello的端点,代码如下:

@RestController

@GetMapping("/hello")
public String hello(@RequestParam(value = "name",defaultValue="world") String name){
	return String.format("Hello %s!",name);
}

启动Spring Boot进行测试,具体如下:

Spring Boot其他技巧

修改Spring Boot版本

在搭建本地漏洞测试平台时,可能涉及多个Spring Boot版本,这里讲一下如何修改Spring Boot版本。

以 Maven 项目为例,手动修改 pom.xml文件中的<version>3.2.0</version>(用于指定 Spring Boot 的版本号)和<java.version>21</java.version>(用于指定 Java 的版本号),最后点击"加载Maven变更"即可。

因为Spring Boot有最低Java版本的限制,所以在变更Spring Boot版本时,要注意Java版本是否支持

这里附一张各Spring Boot版本对应java版本图,如下:

image-20240407220654698

这里还是做一个视频演示,如下:

修改Web服务端口号

在项目下的src\main\resources\下的application.properties文件中添加如下配置项即可

# 比如这里修改为8100端口
server.port=${port:8100}

image-20240407223821984

Spring Boot Actuator

Actuator功能说明

Spring Boot Actuator的功能是在应用程序里提供众多Web端点,通过它们了解应用程序运行时的内部状况。

注意,不同版本的Spring Boot所暴露的端点是有差异的

image-20240408131211589

这里列举几个Actuator提供的常用端点,如下:

image-20240408201245395image-20240408201330698

Actuator端点暴露

SpringBoot <= 1.5.x 以下,是不需要任何配置的,直接就可以访问到端点。

而如果1.5.x<= SpringBoot <=2.x,那么默认只能访问到/health和/info端点。

当SpringBoot >=2.x时,默认也是只能访问/health、/info,但是访问的端点方式发生了改变,相比于1.x版本的端点多了个前缀 /actutator,即如/health 变成了/actuator/health

SpringBoot各版本暴露端点的方式不同,下面列举几个:

  • Spring Boot 1.5.x:在application.properties中添加如下内容即可暴露所有端点:

    # 这种操作实质上是关闭认证,允许其他端点未授权访问
    management.security.enabled=false
    
    # 如果想要针对某个端点,比如env,则可以这样设置
    endpoints.env.sensitive=false
  • Spring Boot >= 2.x:在application.properties中添加如下内容

    # 启用端点env
    management.endpoint.env.enabled=true
    # 暴露端点env。如果需要暴露多个端点使用逗号,隔开即可
    management.endpoints.web.exposure.include=env
    
    # 或者可以使用下面这个配置项直接启用和暴露所有端点
    management.endpoints.web.exposure.include=*

这里提一下启用端点暴露端点

image-20240408143655915

修改管理端点的路径

管理端点的路径是能够修改的,如下:

  • Spring Boot 1.x:在application.properties中添加下面的配置项

    # 比如将管理端点的路径设为/manage
    management.context-path =/manage

    端点的访问方式就更改了,如下:

    # 原来的
    /dump
    /autoconfig
    /metrics
    # 更改后的
    /manage/dump
    /manage/autoconfig
    /manage/metrics
  • Spring Boot 2.x:在application.properties中添加下面的配置项

    # 比如将管理端点的路径设为/manage
    management.endpoints.web.base-path=/manage

    对比一下更改前后的区别,便于理解:

    # 原来的
    /actuator/beans
    /actuator/env
    /actuator/health
    # 更改后的
    /manage/beans
    /manage/env
    /manage/health

端点改名

Spring Boot也支持对端点改名,但是这种情况比较少见

# 把/health端点改min为/healthcheck
management.endpoints.web.path-mapping.health=healthcheck

术语

  • 端点(endpoint):就是网址目录,比如http://localhost:8100/hellohttp://localhost:8100/actuator中的/hello/actuator在Spring Boot就称为端点

鸣谢

Comments

⬆︎TOP