引言
在Java Spring Cloud项目中,我们经常会在子模块中创建公共类库,作为驱动包。那么在另外一个子模块中,需要加载配置文件的时候,往往Spring Boot自动扫描包的时候,只会扫描自己模块下的类。
解决方案
- 方案一:在Spring Boot Application主类上使用@Import注解
- 方案二:创建spring.factories文件
现在我们将其改造一下,采用spirng.factories的方式去加载SwaggerConfig类,在resources目录下新建一个META-INF的目录,然后再新建一个spring.factories的文件,内容如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.sg.config.SwaggerConfig
到这就完成了加载一个Spring不能扫描到的一个类,他可以是第三方的,也可以是自己写的,只要是Spring Boot默认扫描路径不能扫描到,都可以使用这种方式去加载。
参考
- spring boot之spring.factories:https://www.cnblogs.com/huanghzm/p/12217630.html
在SpringCloud项目中,当需要在其他模块加载非扫描路径的类,如SwaggerConfig,可以使用spring.factories文件。在resources/META-INF下创建该文件,内容指定@EnableAutoConfiguration的类路径,例如:org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.sg.config.SwaggerConfig。这样就能加载到SpringBoot默认扫描不到的类。
2155

被折叠的 条评论
为什么被折叠?



