2.构建SpringBoot项目

基于SpringBoot快速搭建一个web应用

  • 构建项目地址
  • 需要选择的依赖
    1. spring-boot-starter-web,全栈web开发模块,包含嵌入式Tomcat,SpringMVC
    2. spring-boot-starter-test,通用测试模块,包含Junit,Mockito等
  • SpringBoot内置tomcat,所以SpringBoot可以打成jar,通过java -jar xxx.jar 运行应用
  • 拓展: SpringBoot的几个特点
    • 嵌入式tomcat,jetty等作为servlet容器
    • 各种stater POM,以模块的方式提供功能,简化依赖管理
    • 自动进行Spring框架的配置
    • 自带应用的监控与管理,actuator
    • 可以通过命令行修改属性值(与SpringBoot配置的加载顺序有关)

RESTfull API接口测试

单元测试:@RunWith和@SpringBootTest,使用MockMvc对象模拟http请求,测试Controller
这里写图片描述

SpringBoot多环境配置

  • application.properties配置文件
    • 配置:使用key=value的形式,如server.port=8888
    • 读取:从配置文件读取值并注入@Value(“{xxx.xxx}”),也可以用命令行的方式注入参数
  • 多环境配置
    1. 命名格式application-{profile}.properties,如application-dev.properties
    2. 激活 spring.profiles.active={profile},命令行也可,如java -jar xxx.jar —spring.profiles.active=xxx
  • 多环境配置思路
    1. 默认配置: 在application.properties配置通用内容,并激活,作为开发配置
    2. 在applications-{profile}.properties中配置不同环境的配置
    3. 通过命令行方式去激活不同环境的配置
  • 配置的加载顺序,数字越小优先级越高(包含外部化配置的原理)
    • 常见: 1.命令行参数, 4.java的系统属性, 5.操作系统环境变量

SpringBoot神器之一actuator: 应用的监控与管理

  • 引入依赖spring-boot-starter-actuator
  • 原生端点
    • 应用配置类:获取应用加载的应用配置、环境变量、自动化配置报告与SpringBoot应用密切相关的配置类信息
    • 度量指标类:获取应用运行时的度量指标,提供动态变化的报告内容,如http请求统计,内存等
    • 操作控制类:原生的只提供一个应用开关,慎用
  • 详细解析

    • 应用配置类
      • /autoconfig,获取应用的自动化配置报告,包含positiveMatches(条件匹配成功)和negativematches(条件匹配失败),可以由此发现一些配置没有生效的具体原因
      • /configprops,获取应用的属性信息,可以通过prefix属性关闭指定端点
      • /env,与/configprops不同,该端点用来获取所有可用的环境属性报告
    • 度量指标类

      • /metrics,获取内存信息,线程信息,垃圾回收等重要指标,其中start-start代表了对静态资源的访问次数,还可以在程序中增加自定义统计值

        • 示例:统计接口被访问的次数
          @Autowired
          private CounterService counterService;
          
          @RequestMapping("/hello")
          public String hello()  {
           counterService.increment(String metricName);
           return "OK";
          }
      • /health,获取健康信息指标
        • 根据自动化配置,已经可以检测地空间磁盘,数据源连接,Mongo,Redis,Solr服务等是否可用
        • Staters POMs没有封装RocketMQ,可以实现HealthIndicator,覆写health(),并将整个类用@Component修饰
      • /dump,获取应用中所有运行的线程信息
      • /trace,获取http跟踪信息,在内存中保留近100条记录

猜你喜欢

转载自blog.csdn.net/coder1994/article/details/80603805