SpringBoot
配置如何编写 yaml
自动装配原理(重要)
集成web开发:业务的核心
集成数据库
分布式开发:Dubbo + zookeeper
swagger:接口文档
单机应用 all in one:一个war包就能跑起来,利与开发和测试,比较方便,但是单机的承载能力有限
微服务:高内聚、低耦合
每个功能元素的服务都一个可替换、可独立升级的小模块。
一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素,它们各自完成自己的功能,然后通 http 相互请求调用。比如一个电商系统、查缓存、连数据库、浏览页面、结账、支付等服务都是一个个独立的功能服务,都被微化了,它们作为一个个微服务共同构建了一个庞大的系统。如果修改其中的一个功能,只需要更新升级其中一个功能服务单元即可。
注意Springboot是把项目拆分为很多jar包了,不再是以前那种一个war了
自定义banner: 新建一个banner.txt
SpringBoot 的 pom文件中可以看到父工程把一个依赖可以兼容的版本都列出来了,所以子工程不用关心版本号了。
Springboot 自动装配原理
pom.xml 中
- spring-boot-dependencies: 核心依赖在父工程中
- 我们在写或者引入一些依赖的时候,不需要写版本号,就是因为有这些版本仓库
- 存在很多启动器
启动器就是Springboot的启动场景
比如spring-boot-starter-web,它就会帮我们自动导入web环境所有的依赖
注解:
@SpringBootConfiguration
@Configuration
@Component
@EnableAutoConfiguration
@AutoConfigurationPackages: 自动配置包
Springboot所有自动配置都是在启动的时候扫描加载的:spring.factories 所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入对应的start,就有对应的启动器了,有了启动器,有了启动器,我们自动装配就会生效。
SpringApplication
这个类主要做以下事情:
- 推断应用的类型是普通的项目还是Web项目
- 查找并加载所有可用初始化器,设置到 initializers属性中
- 找出所有的应用程序监听器,设置到 listeners属性中
- 推断并设置main 方法的定义类,找到运行的主类