1.读取配置文件内容

springboot读取配置文件内容有两种一种为在属性上使用@value注解注解参数为配置文件的内容,一种为在类上添加注解@ConfigurationProperties(prefix = "配置文件的属性前缀"),并在实体类中创建与配置文件的属性同名的属性.
yml配置文件如下

  1. application:
  2. name: configurationFile
  3. version: 1.0.0
  4. developer:
  5. name: dev环境
  6. website: https://www.yuque.com/yiquanchaoren-dvwhg/javassm/hmcl1d/edit
  7. qq: 318705208
  1. 使用@value注解

使用value注解将配置文件中的内容与类中属性进行绑定.

  1. @Data
  2. @Component
  3. public class ApplicationProperty {
  4. @Value("${application.name}")
  5. private String name;
  6. @Value("${application.version}")
  7. private String version;
  8. }
  1. 使用@ConfigurationProperties注解

使用@ConfigurationProperties注解将会使配置文件中此注解参数prefix为前缀的内容与类中同名属性进行绑定,若类中属性名与配置文件中内容名称不同,启动项目将会报错

2. 集成 spring-boot-starter-actuator

spring-boot-starter-actuator 是用于监控 spring-boot的启动和运行状态的工具,使用需要先添加依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. <version>2.5.5</version>
  5. </dependency>

在配置文件中设置监控所用的端口号和访问路径,若不设置端口和访问路径,默认使用和Spring Boot相同的端口号和访问路径.

  1. management:
  2. server:
  3. port: 8090
  4. servlet:
  5. context-path: /sys
  6. # 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况
  7. endpoint:
  8. health:
  9. show-details: always
  10. # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点
  11. endpoints:
  12. web:
  13. exposure:
  14. include: '*'
  1. 访问http://localhost:8090/sys/actuator/mappings可以查看所有的mapping的信息
  2. 访问http://localhost:8090/sys/actuator/beans,可以查看所有的bean的信息

其中actuor可访问的端点分为三类:

  1. 应用配置类
    • /configprops—-可以查看配置文件例如application.yml的信息
    • /autoconfig——查看自动化配置
    • /beans——查看bean
    • /env—-查看硬件和jvm环境的信息,例如jdk配置信息(jdk所在目录),计算机信息
    • /info—-返回当前应用application.properties文件中info开头的配置信息
    • /mappings——查看控制器映射报告,可以看到有哪些请求信息
  2. 度量指标类
    • dump
    • health——-查看系统健康
  3. 操作控制类

spring-boot-starter-actuator 文档地址:https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/reference/htmlsingle/#production-ready

3.集成spring-boot-admin

Spring Boot Admin 是 Spring Boot 应用程序运行状态监控和管理的后台界面。
官方文档地址为:https://codecentric.github.io/spring-boot-admin/current/

配置admin服务端

  1. 添加服务端依赖

    1. <dependency>
    2. <groupId>de.codecentric</groupId>
    3. <artifactId>spring-boot-admin-starter-server</artifactId>
    4. <version>2.4.0-SNAPSHOT</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.springframework.boot</groupId>
    8. <artifactId>spring-boot-starter-web</artifactId>
    9. </dependency>
  2. 配置端口

    1. server:
    2. port: 8090
  3. 在启动类添加服务端注解@EnableAdminServer

    1. @EnableAdminServer
    2. @SpringBootApplication
    3. public class AdminServerApplication {
    4. public static void main(String[] args) {
    5. SpringApplication.run(AdminServerApplication.class, args);
    6. }
    7. }

    配置客户端

  4. 添加客户端依赖

  5. 在yml中添加服务端配置

    1. server:
    2. port: 8080
    3. spring:
    4. application:
    5. name: admin-client
    6. boot:
    7. admin:
    8. client:
    9. #设置服务端地址
    10. url: "http://localhost:8090"
    11. instance:
    12. metadata:
    13. #设置客户端端点信息的安全认证信息
    14. user.name: ${spring.security.user.name}
    15. user.password: ${spring.security.user.password}
    16. security:
    17. user:
    18. name: admin
    19. password: 123456
    20. management:
    21. endpoint:
    22. health:
    23. #设置端点健康情况显示,显示硬盘使用情况和线程情况
    24. show-details: always
    25. endpoints:
    26. web:
    27. exposure:
    28. #暴漏所有可访问的端点
    29. include: "*"
  6. 设置访问信息

    1. @RestController
    2. public class IndexController {
    3. @GetMapping("/")
    4. public String index() {
    5. return "<h1>欢迎来到客户端首页</h1>";
    6. }
    7. }

    启动服务端和客户端,访问http://localhost:8090/applications 可发现已经注册的服务
    image.png
    首页为所有已注册的服务名称和端口,应用墙中显示所有服务
    image.png
    点击服务名可以查看服务的详细信息,例如主机名,jdk安装地址,端口健康情况
    image.png

    4.集成AOP拦截请求日志