赞
踩
一个SpringBoot项目从这里开始启动:
进入@SpringBootApplication这个注解:
自动化配置的的秘密就隐藏在这里:
可以看到SpringBoot项目启动类必须要被@EnableAutoConfiguration标记,而之所以没有看到是因为@SpringBootApplication已经被@EnableAutoConfiguration标记了
继续进入@EnableAutoConfiguration注解看看:
这个注解的含义就是自动在依赖中自动找到自动化配置类,在@EnableAutoConfiguration注解内使用到了@import注解来完成导入配置的功能,而AutoConfigurationImportSelector内部则是使用了SpringFactoriesLoader.loadFactoryNames方法进行扫描具有META-INF/spring.factories的jar包。我们可以看看spring-boot-autoconfigure包内的spring.factories文件内容,如下所示:
可以看到配置的结构形式是key=>Value形式,多个Value时使用,隔开,那么我们在自定义starter内也可以使用这种形式来完成,我们的目的是为了完成自动化配置,所以我们这里key则是需要使用:org.springframework.boot.autoconfigure.EnableAutoConfiguration
自定义spring.factories:
我们在springboot项目src/main/resource
目录下创建META-INF目录,并在目录内添加文件spring.factories
,具体内容如下:
#配置自定义Starter的自动化配置
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.young.jpademo2.conf.HelloAutoConfiguration
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。