SpringBoot小结

为什么学SpringBoot?

Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。

Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器 starter),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。

Spring Boot 主要特点是:

  • 创建独立的Spring应用,为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验
  • 直接嵌入应用服务器,如tomcat、jetty、undertow等;不需要去部署war包
  • 提供固定的启动器依赖去简化组件配置;实现开箱即用(启动器starter-其实就是Spring Boot提供的一个jar 包),通过自己设置参数(.properties或.yml的配置文件),即可快速使用。
  • 自动地配置Spring和其它有需要的第三方依赖
  • 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
  • 绝对没有代码生成,也无需 XML 配置。

启动类

Spring Boot项目通过main函数即可启动,我们需要创建一个启动类:

启动类需要加上@SpringBootApplication注解,通过run()方法来启动程序。

 自动装配

SpringBoot核心注解@SpringBootApplication。是一个组合注解,组合了@ComponentScan、@SpringBootConfiguration、@EnableAutoConfiguration

 

@EnableAutoConfiguration 注解组合了 @AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class) 注解。
@AutoConfigurationPackage 底层也是一个 @Import(AutoConfigurationPackages.Registrar.class)
其会把启动类的包下组件都扫描到 Spring 容器中。

 

@Import(AutoConfigurationImportSelector.class) 自动配置的核心类
AutoConfigurationImportSelector.class ,该类导入大量的自动配置类, debug 可以发现,其读取的是 classpath下的 META-INF/spring.factories下配置文件。
当然 spring.factories 文件中配置类默认不会都生效,具体哪些配置类生效由配置类上标注的
@ConditionalOnClass 注解来决定。
总结:
Spring Boot 通过 maven 中的 starter 导入了所需场景下的 jar 包,并通过主启动类上的
@SpringBootApplication 中的 @EnableAutoConfiguration 读取了类路径下的 META
INF/spring.factories EnableAutoConfiguration 的配置类,这些配置类使用
@ConditionalOnClass 来标注,根据 @ConditionalOnClass 标注的约束条件来引入自动化的环境配置。

如果我们自己配置了相关Bean,那么会覆盖默认的自动配置的Bean我们还可以通过配置application.yml文件,来覆盖自动配置中的属性

 全局配置

SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义 application.properties 文件来进行覆盖。这样虽然使用的还是默认配置,但是配置中的值改成了我们自定义的。因此,学习SpringBoot的第二件事情,就是通过 application.properties 来覆盖默认属性值,形成自定义配置。我们需要知道SpringBoot的默认属性key,非常多,可以再idea中自动提示。

属性文件支持两种格式,application.properties和application.yml。如果properties和yml文件都存在,如果有重叠属性,默认以Properties优先。遇到需要修改的组件的配置项流程为:

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值