前言
为什么是springboot?江湖夜雨,传说依旧,不懂springboot一技之长,如何混迹java圈,本节内容我们介绍一下spring的一些基本特性。尤其是springboot3的基本特性,使得我们更好的理解springboot3。
正文
- springboot的特点
-可以快速的创建一个独立的spring项目,取代老式的SSM项目
- 直接嵌入Tomcat、Jetty、Undertow等servlet容器,启动即部署,不需要单独安装servlet容器
- 简化pom依赖,可以通过starter启动器安装各种场景依赖,如redis、mq、mybais等,也可以自定义starter启动器,功能可插拔
- 按需配置,约定大于配置,所有的配置参数,都有默认配置,如果不配置,就使用默认的配置
- 提供生产级特性:监控指标、健康检查、外部化配置等
总结:开发简化、配置简化、部署简化、监控简化、运维简化、项目整合简化。、
- springboot的依赖管理机制
- 通过场景启动器starter导入相关maven依赖,根据maven的依赖传递原则,starter启动器的依赖会自动被自定义项目依赖。
- springboot的父项目进行版本号的管理,父项目将常用的资源版本号定义好,避免版本冲突和适配等一系列问题
- 也可利用maven的就近原则,自定义资源依赖的版本号
- springboot的自动配置机制
- springboot的包扫描规则
a.默认只会扫描主程序类注解@SpringBootApplication下所在的包及其子包
b.自定义包扫描路径:使用@SpringBootApplication(scanBasePackages = "com")或者使用@ComponentScan("com")指定包路径
- 配置默认值:配置文件的值与Bean配置类的属性一一绑定,加载到容器中
- 按需加载配置:全场景的自动配置都在spring-boot-autoconfiger这个包配置,会按需加载,根据导入的场景依赖的启动器
- springboot的常用注解
- 组件注册:
@Configuration、@SpringBootConfiguration
@Controller、@Service、@Repository、@Component
@Bean+@Scope
@Import
@ComponentScan
- 条件注解
@ConditionalOnClass:类路径中存在这个类,则触发指定行为
@ConditionalOnMissingClass:类路径中不存在这个类,则触发指定行为 @ConditionalOnBean:如果容器中存在该bean组件,则触发指定行为 @ConditionalOnMissingBean:如果容器中不存在该bean组件,则触发指定行为
- 属性绑定
@ConfigurationProperties:组件的属性和配置文件中的属性绑定
@EnableConfigurationProperties:导入第三方的属性配置文件
结语
本节内容到这里就结束了,下期见。。。。。。