前言

为什么是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:导入第三方的属性配置文件

结语

本节内容到这里就结束了,下期见。。。。。。