SpringBoot 实战
概念:
- 简单Java对象 POJO(Plain Old Java Object)
- 项目对象模型 POM(Project Object Model)
第一章:入门
- 核心功能
- 自动配置:针对常见的应用功能 提供相关的配置;消除了传统Spring程序中的样板配置
- 起步依赖(starter):根据依赖传递 把所需其他依赖引入项目;可通过库提供的功能 而非各个依赖的名称版本号来构建依赖;仅需在构建文件里指定这些功能,构建过程自己找出需要的依赖组合。不需要指定版本
- mvn dependency:tree 以依赖树的形式显示具体的依赖版本
- 若不想用起步依赖中传递的某个依赖 使用<exclusions><exclusion><groupId> xxx</> 来排除
- 若要用某个依赖的最新版本,直接在pom中添加即可
- 命令行界面: Spring Boot CLI 支持在命令行里简单快速的用Groovy开发
- Actuator: 提供在运行时检视应用程序内部情况的能力,
第二章:开发第一个应用程序
- 启动引导类
- @SpringBootAppliacation 开启组件扫描 和 自动配置功能 相当于以下3个注解
- @Configuration 标明该类使用基于Java的Spring配置
- @ComponentScan 启用组件扫描,开启后控制器和其他组件才能倍发现并注册到Bean
- @SpringBootAppliacation 开启组件扫描 和 自动配置功能 相当于以下3个注解
- @EnableAutoConfiguration:自动配置
- 测试类
- @SpringApplicationConfiguration(classes=xxApplication.class) 从配置类中加载Spring应用程序上下文
- 自定义条件类
- 可实现Condition接口 覆盖其matches ()方法,声明其他Bean时加上如下注解 @Conditional(JdbcTemplateCondition.class) ,就可以在条件成立时创建此Bean P52页
- SpringBoot 利用条件化配置 实现 自动配置
第三章: 自定义配置
- 覆盖自动配置: 编写一个显式配置,SpringBoot会发现显式配置 降低自动配置的优先级(实现方法为 先加载应用级配置 再考虑自动配置,自动配置中由@ConditionOnMissingBean(xx.class)这样的方法,可以检查当前是否有其他同类型的配置存在,若存在 则不自动配置)
- 配置类从properties 文件加载配置
- 用@Component 和@ConfigurationProperties(“prefix”) 扫描带prefix的前缀属性
- 设置setter方法 获取properties文件中的配置
- 可以在某类上增加@Profile(“profile name”) ,代表激活该profile时才用该配置
- 获得当前server运行的端口
- @Value(“${local.server.port}”) private int port;
第四章:测试
- 测试类要加的注解
- @RunWith(SpringJUnit4ClassRunner.class) 利用JUnit4集成测试
- @ContextConfigruation/ @SpringApplicationConfiguration
- 区别:前者未加载完整的SpringBoot,后最可以加载完整的SpringBoot,如应用程序上下文 日志 外部属性等
第五章:Groovy 与 Spring Boot CLI
第六章:Grails
第七章:Actuator
- 利用Actuator 可以了解SpringBoot运行时的内部情况
- 需要添加pom依赖 spring-boot-starter-actuator
- 发起GET请求就可以查看一些内部情况
- /beans 描述应用程序上下文里的全部Bean 以及他们的关系
- /autoconfig 记录自动配置过程中 哪些配置条件通过 哪些没有
- /env 可以看到所有可用属性
- /mappings 可以看控制器映射的端点
- /metrics 可以看到运行时数据 堆 垃圾回收器 线程池等等
- / trace 可以包括所有Web请求的详细信息
- /dump 查看线程快照
- /shutdown关闭程序 默认关闭 开启:shutdown.enable=true