SpringBoot自动配置原理流程图
SpringBoot的优势之一是简化了配置,其自动配置原理也是面试高频题之一
下面我们来分析下SpringBoot的自动配置原理
启动类
启动类:
package com.qzcsbj.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ApidemoApplication {
public static void main(String[] args) {
SpringApplication.run(ApidemoApplication.class, args);
}
}
@SpringBootApplication表示这个类是启动类
@SpringBootApplication是一个复合注解
下面把@SpringBootApplication替换为@SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan,程序一样可以正常启动并访问
package com.qzcsbj.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
// @SpringBootApplication
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public class ApidemoApplication {
public static void main(String[] args) {
SpringApplication.run(ApidemoApplication.class, args);
}
}
so,@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan