SpringBoot GetStarted




推荐书籍:

  • SpringBoot 四个核心概念:
    • 起步依赖(Starter Dependcy)
    • 自动配置(Auto-Config)
    • CLI(Command Line Interface)
    • Actuator





  • 使用 Spring Initializr 创建 Spring Boot 项目
  • SpringBoot 标准目录:
    • 整体上,符合maven标准目录
    • 静态资源文件(js、css、jpg等),
      • 放在src/main/resources/static
      • 注意controller的mapping url不要覆盖静态资源文件的路径。
    • 模板文件(themeleaf、jsp等)
      • 放在src/main/resources/templates
    • SpringBoot属性配置文件:
      • src/main/resources/application.yml


  • @SpringBootApplication
    • 将三个有用的注解组合在了一起
      • @Configuration:标明该类使用Spring基于Java的配置
      • @ComponentScan:启用组件扫描
      • @EnableAutoConfiguration :启用SpringBoot自动配置
    • 启动引导类(bootstrap class)
      • 提供main方法入口
      • 使得web项目,通过内嵌的web server,以jar的方式运行。



  • 起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),
    • 定义了实现某种功能所需的依赖库(即比Dependcy,抽象一层到module/功能)
      • 确保引入的全部依赖都能相互兼容
  • 不需要指定版本号,
    • 起步依赖本身的版本是由正在使用的Spring Boot的版本来决定的,
    • 而起步依赖则会决定它们引入的传递依赖的版本
  • 参考文档,查看SpringBoot内置的全部起步依赖
  • 覆盖起步依赖引入的传递依赖
    • Maven总是会用最近的依赖,
      • 在项目的构建说明文件里增加的这个依赖,会覆盖传递依赖引入的另一个依赖
    • 或者显式<exclusions>某些依赖,然后再声明<dependency>引入新依赖



  • 自动配置,利用了Spring条件化配置的特性
    • Spring Boot提供的一系列条件化注解,如
      • @ConditionalOnBean(配置了某个特定Spring Bean)
      • @ConditionalOnClass(Classpath里有指定的类)等等
  • 使用src/main/resources/application.yml可以修正自动配置
    • 但是自动配置依然有效
  • 覆盖自动配置很简单,就当自动配置不存在,直接显式地写一段配置
    • 但这样,会使自动配置失效。




  • 推荐使用Spring Data JPA,作为orm解决方案


  • SpringBoot在Idea中热部署:
    • 左侧菜单,选中相关java、html等文件,ctrl+shift+F9  recomplie


  • SpringBoot使用 Profile 基于application.yml属性配置

  • Spring Boot自动配置的默认错误处理器会查找名为error的视图,



  • Spring Boot Actuator的关键特性是在应用程序里提供众多Web端点,
    • 通过它们了解应用程序运行时的内部状况
  • Actuator提供了13个端点
    • /autoconfig 自动配置报告、
    • /beans  
      • spring beans 报告
    • /env 环境变量报告
    • /health 报告应用程序的健康指标
    • /metrics 各种应用程序度量信息,比如内存用量和HTTP请求计数
    • POST /shutdown 关闭应用程序
      • endpoints.shutdown.enabled设置为true

  • 两种方式:
    • REST端点
    • remote shell


  • 定制Actuator:
    • 修改Actuator端点 URI
    • 启用和禁用Actuator 端点
    • 添加自定义度量信息
      • 计数器CounterService接口
      • 记录指标值GaugeService接口(比如用于保存timestamp)
      • 你无需实现这些接口。Spring Boot已经提供了两者的实现。
        • 我们所要做的就是把它们的实例注入所需的Bean,在适当的时候调用其中的方法,更新想要的度量值
      • PublicMetrics接口,提供完全自定义的度量信息。


  • 默认情况下,/trace端点报告的跟踪信息都存储在内存仓库里,100个条目封顶
    • 可以声明自己的InMemoryTraceRepository Bean,将它的容量调整至100以上。
  • 或者实现Spring Boot的TraceRepository接口,将跟踪条目保存到其他地方


  • Actuator自带了很多健康指示器,能满足常见需求,
    • 比如报告应用程序使用的数据库和消息代理的健康情况。
  • 实现 HealthIndicator接口,自定义健康指示器





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值