Spring Boot基础知识总结

Spring Boot

1. Spring Boot框架的优点

 		— 快速创建独立运行的Spring项目以及与主流框架集成
 		
		— 直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件)
		
		— 提供依赖启动器简化构建配置
		
		— 极大程度的自动化配置Spring和第三方库,简化开发,也可修改默认值
		
		— 提供生产就绪功能
		
		—极少的代码生成和XML配置,开箱即用
		
		— 准生产环境的运行时应用监控
		
		— 与云计算的天然集成

2. Spring Boot的主要执行流程

(1)初始化SpringApplication实例
  •   	 获取所有可用的应用初始化器类 ApplicationContextInitializer
    
  •   	 this.mainApplicationClass = this.deduceMainApplicationClass()
    
  •   	 查看classpath类路径webApplicationType下是否存在某个特征类
    
  •   	 获取所有可用的监听器类 ApplicationListener
    

循环图:

判断当前项目类型—> 应用的初始化器设置—> 应用的监听设置 —>设置项目启动类
(2) 初始化Spring Boot项目启动
  •   	获取监听器并运行
    
  •   	对项目环境进行预设置
    
  •   	对项目应用上下文 ApplicationContextt的预配置
    
  •   	使监听器持续运行配置好的应用上下文
    
  •   	调用项目中自定义执行器
    
  •   	运行监听器启动配置好的应用上下文
    

循环图:

获取并运行监听器—>准备项目运行环境—>应用上下文装配—>
持续运行上下文 <— 运行自定义执行器 <—启动上下文

3. Spring Boot自动配置的原理

3.1三个重要的注解

在使用main()启动SpringBoot的时候,只有一个注解@SpringBootApplication

@SpringBootApplication
public class Chapter01Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter01Application.class, args);
    }

}

在@SpringBootApplication注解中,有三个注解是比较重要的:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters={ 					      
				@Filter(type=FilterType.CUSTOM,classes=TypeExcludeFilter.class),
				@Filter(type=FilterType.CUSTOM,classes=AutoConfigurationExcludeFilter.class)})
public  @interface  SpringBootApplication{
  • @SpringBootConfiguration:底层是Configuration注解,支持JavaConfig的方式来进行配置(使用Configuration配置类等同于XML文件)。
  • @EnableAutoConfiguration:开启自动配置功能
  • @ComponentScan:扫描注解,默认是扫描当前类下的package。将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中。
3.2EnableAutoConfiguration
		可以帮助我们自动载入应用程序所需要的所有默认配置。

有两个比较重要的注解:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration{
  • @AutoConfigurationPackage:自动配置包

  • @Import:给IOC容器导入组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值