Spring Boot 版本 2.0.3.RELEASE
文档地址:https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/html/
遇到的英文单词
- typical: 典型的
- transitively: 可传递地
- Several of : 几个
- dives into : 深入
- bootstrap : 引导
- delegate : 委托
- approach : 方法
- perform : 执行
- detect : 察觉,侦测,发现
Spring CLI的使用
step 1: sdkman安装spring-boot
1 | sdk install springboot |
step 2:运行groovy脚本
1 | spring run app.groovy |
示例:
1 |
|
从低版本的Spring Boot升级到2.0
加入依赖
1 | <dependency> |
运行一次后移除该依赖
使用maven命令启动Spring Boot
1 | mvn spring-boot:run |
相应的gradle有:1
gradle bootRun
可以export系统变量(没有测试):
1 | export MAVEN_OPTS=-Xmx1024m |
社区提供的Spring Boot starter
如何排除不想生效的Bean
方式一:使用exclude属性1
(exclude = DataSourceAutoConfiguration.class)
方式二:如果classpath下没有这个类,使用类全名1
"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration") (excludeName =
方式三:如果有多个,可以使用spring.autoconfigure.exclude属性1
spring.autoconfigure.exclude=DataSourceAutoConfiguration.class
你可以同时在注解和属性上使用exclude
You can define exclusions both at the annotation level and by using the property.
构造器注入可以省略@Autowired
If a bean has one constructor, you can omit the @Autowired
1 |
|
使用Remote Debug时的启动参数
仅供参考,自己还没有试
1 | java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n |
IDEA中使用devtools的正确姿势
修改代码后,需要点击: Build->Build Project
编程式的属性设置
1 | public static void main(String[] args) { |
Spring Boot提供的几个很有用的事件
针对Spring boot提供的事件,编写自己的Listener,详见Spring-ContextRefreshedEvent事件
- ApplicationStartingEvent:在开始运行时,监听器注册和初始化之后被触发
- ApplicationEnvironmentPreparedEvent:发现 Environment 被上下文使用时,上下文被创建之前触发
- ApplicationPreparedEvent:在启动刷新之前,bean定义被加载之后被触发
- ApplicationStartedEvent:上下文刷新之前,应用和命令行启动器运行之前触发
- ApplicationReadyEvent:在所有应用和命令行启动器调用之后,这表明应用已经准备好处理请求
6.ApplicationFailedEvent:启动时出现异常触发
配置文件的名称和位置
1 | spring.config.name |
注:这是两个需要很早初始化的属性,只能写在环境变量里(OS environment variable, a system property, or a command-line argument)
获取命令行参数
- 通过注入ApplicationArguments
1 |
|
- 实现CommandLineRunner或ApplicationRunner接口
1 |
|
日志按环境生效
以下配置文件展示了多个环境,特定环境,非某个环境
1 | <configuration> |
日志使用Spring环境变量
1 | <springProperty scope="context" name="fluentHost" source="myapp.fluentd.host" |
项目首页查找规则
支持html和模板引擎作为首页,首先会查找index.html,然后查找index template,还是没有时,会默认用一个欢迎页
WebBindingInitializer
用于配置全局的类型转换器, 局部的可以在Controller中使用@InitBinder标记在方法上(百度所得)
Todo List
- 搭建jenkins,配合git自动构建发布Spring Boot项目
- 研究编排系统Docker,K8s
- 研究项目里的Spring扩展
- 总结分布式链路追踪
- mybatis官方文档, 源码, mybatis-plus, 通用mapper,代码生成
- spring boot多数据源,分库分表,sharding-jdbc