JDK11自动配置依赖设计

56 阅读2分钟

SpringBoot项目在启动的时候,会自动配置一些与项目相关的配置,实现这个功能是基于@SpringBootApplication注解,在@SpringBootApplication中包含了三个关键点,先看图

1.png 第一个:@SpringBootConfiguration注解,其主要的作用是使得我们这个注解标记的类是一个配置类,在springboot项目启动时候可以加载这个类中; 第二个:@EnableAutoConfiguration注解,它的作用是开启自动配置模式;自动配置的主要实现是通过这个注解里的另外一个注解@Import导入一种AutoConfigurationImportSelector.class自动配置导入选择器来实现;

2.png 如图所示,在AutoConfigurationImportSelector.class中主要是通过ImportCandidates.load这个API去加载AutoConfiguration.class文件; 3.png 而这个加载的文件其实最终找到的是我们AutoConfiguration.class中的《 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports》这类文件,读取文件中的配置类的全类名,然后返回一个List类型的集合。 实现案例:阿里云OSS图片上传自动配置类的设计 第一步:创建一个父工程,这个父工程里不需要编写代码,只需要保留一个pom文件,进行依赖管理和组件管理,同时它需要继承与springboot的父组件,因为这个配置后面应用的时候还需要使用@Autowired功能,如图

4.png 第二步:创建一个子工程(configuration),继承上面的父工程,导入相关阿里云和spring依赖;

5.png 这个configuration的子工程里主要包含4个文件: 1.配置类文件 6.png 2.实体类文件 7.png 因为这个自动配置类完成后就等同于依赖,面对不同的项目,属性值是不同的,所以在这个类中就不配置yml文件。 3.阿里云图片上传处理代码 8.png 4.自动配置扫描的文件 9.png

根据以上几步,最后通过maven工具进行install,就可以在项目中进行应用。

10.png