javascript
Spring Boot 之spring.factories
首先拋出一個(gè)問(wèn)題:如果想要被Spring容器管理的Bean的路徑不再Spring Boot 的包掃描路徑下,怎么辦呢?也就是如何去加載第三方的Bean 呢?
有兩種方式可以解決:
這里我們使用Swagger的配置來(lái)做實(shí)驗(yàn)。
1:首先一個(gè)Swagger的配置類:SwaggerConfig
SwaggerConfig 代碼:
2:再看我的工程結(jié)構(gòu)吧:
發(fā)現(xiàn)我的SwaggerConfig 類和 SpringBoot 的啟動(dòng)類ConfigApplication.java 不在同一級(jí)目錄下,所以當(dāng)Spring Boot 自動(dòng)掃描包的時(shí)候,是掃描不到我的SwaggerConfig 的配置的,也就在控制臺(tái)沒(méi)有Swagger的打印的信息:
所以這時(shí)候我如果想要把SwaggerConfig 加載到Spring容器中的話 要怎么辦呢?下面介紹兩種方式
①:在Spring Boot Application 主類上 使用@Import 注解
啟動(dòng)就可以看到Swagger的基礎(chǔ)信息:
②:現(xiàn)在我們將其改造一下,采用spring.factories 的方式去加載SwaggerConfig類,在resources目錄下新建一個(gè)META-INF 的目錄,然后在
新建一個(gè)spring.factories 的文件,里面的內(nèi)容為:
登錄后復(fù)制
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.sg.config.SwaggerConfig然后在把Spring Boot 啟動(dòng)類上的@Import注釋掉,啟動(dòng)發(fā)現(xiàn)也可以把SwaggerConfig加載到Spring 容器中
到這就完成了加載一個(gè)Spring 不能掃描到的一個(gè)類,他可以是第三方的,也可以是自己寫的,只要是Spring Boot 默認(rèn)掃描路徑不能夠掃描到,都可以使用這種方式去加載!!!
總結(jié)
以上是生活随笔為你收集整理的Spring Boot 之spring.factories的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python源码精要(10)-pytho
- 下一篇: 学习Spring Boot:(二十六)使