《SpringBoot In Action》 笔记

SpringBoot 实战

概念:

  • 简单Java对象 POJO(Plain Old Java Object)
  • 项目对象模型 POM(Project Object Model)

第一章:入门

  • 核心功能
    1. 自动配置:针对常见的应用功能 提供相关的配置;消除了传统Spring程序中的样板配置
    2. 起步依赖(starter):根据依赖传递 把所需其他依赖引入项目;可通过库提供的功能 而非各个依赖的名称版本号来构建依赖;仅需在构建文件里指定这些功能,构建过程自己找出需要的依赖组合。不需要指定版本
      1. mvn dependency:tree 以依赖树的形式显示具体的依赖版本
      2. 若不想用起步依赖中传递的某个依赖 使用<exclusions><exclusion><groupId> xxx</> 来排除
  • 若要用某个依赖的最新版本,直接在pom中添加即可
  1. 命令行界面: Spring Boot CLI 支持在命令行里简单快速的用Groovy开发
  2. Actuator: 提供在运行时检视应用程序内部情况的能力,

第二章:开发第一个应用程序

  • 启动引导类
    1. @SpringBootAppliacation 开启组件扫描 和 自动配置功能 相当于以下3个注解
      1. @Configuration 标明该类使用基于Java的Spring配置
      2. @ComponentScan 启用组件扫描,开启后控制器和其他组件才能倍发现并注册到Bean
  • @EnableAutoConfiguration:自动配置
  • 测试类
    1. @SpringApplicationConfiguration(classes=xxApplication.class) 从配置类中加载Spring应用程序上下文
  • 自定义条件类
    1. 可实现Condition接口 覆盖其matches ()方法,声明其他Bean时加上如下注解 @Conditional(JdbcTemplateCondition.class) ,就可以在条件成立时创建此Bean P52页
    2. SpringBoot 利用条件化配置 实现 自动配置

第三章: 自定义配置

  • 覆盖自动配置: 编写一个显式配置,SpringBoot会发现显式配置 降低自动配置的优先级(实现方法为 先加载应用级配置 再考虑自动配置,自动配置中由@ConditionOnMissingBean(xx.class)这样的方法,可以检查当前是否有其他同类型的配置存在,若存在 则不自动配置)
  • 配置类从properties 文件加载配置
    1. 用@Component 和@ConfigurationProperties(“prefix”) 扫描带prefix的前缀属性
    2. 设置setter方法 获取properties文件中的配置
    3. 可以在某类上增加@Profile(“profile name”) ,代表激活该profile时才用该配置
  • 获得当前server运行的端口
    1. @Value(“${local.server.port}”) private int port;

第四章:测试

  • 测试类要加的注解
    1. @RunWith(SpringJUnit4ClassRunner.class) 利用JUnit4集成测试
    2. @ContextConfigruation/ @SpringApplicationConfiguration
      1. 区别:前者未加载完整的SpringBoot,后最可以加载完整的SpringBoot,如应用程序上下文 日志 外部属性等

第五章:Groovy 与 Spring Boot CLI

第六章:Grails

第七章:Actuator

  • 利用Actuator 可以了解SpringBoot运行时的内部情况
  • 需要添加pom依赖 spring-boot-starter-actuator
  • 发起GET请求就可以查看一些内部情况
    1. /beans 描述应用程序上下文里的全部Bean 以及他们的关系
    2. /autoconfig 记录自动配置过程中 哪些配置条件通过 哪些没有
    3. /env 可以看到所有可用属性
    4. /mappings 可以看控制器映射的端点
    5. /metrics 可以看到运行时数据 堆 垃圾回收器 线程池等等
    6. / trace 可以包括所有Web请求的详细信息
    7. /dump 查看线程快照
    8. /shutdown关闭程序 默认关闭 开启:shutdown.enable=true
原文地址:https://www.cnblogs.com/lancelee98/p/15336848.html