真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot之spring.factories-創(chuàng)新互聯(lián)

1.首先拋出一個(gè)問題:如果想要被Spring容器管理的Bean的路徑不再Spring Boot 的包掃描路徑下,怎么辦呢?也就是如何去加載第三方的Bean 呢?

有兩種方式可以解決:
這里我們使用Swagger的配置來做實(shí)驗(yàn)。
1:首先一個(gè)Swagger的配置類:SwaggerConfig
SwaggerConfig 代碼:

在邗江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),邗江網(wǎng)站建設(shè)費(fèi)用合理。
@Configuration
@EnableSwagger2
public class SwaggerConfig implements EnvironmentAware {
    private static final Logger log = LoggerFactory.getLogger(SwaggerConfig.class);
    @Autowired
    private Environment env;
    @Value("${swagger.scan.package}")
    private String swaggerScanPackage;

    public SwaggerConfig() {
    }

    @Bean
    public Docket createRestApi() {
        Predicate path = PathSelectors.any();
        if (Arrays.asList(this.env.getActiveProfiles()).contains("prod")) {
            path = PathSelectors.none();
        }

        log.info("####初始化createRestApi####swaggerScanPackage:" + this.swaggerScanPackage);
        log.info(path.toString());
        return (new Docket(DocumentationType.SWAGGER_2)).apiInfo(this.apiInfo()).select().apis(RequestHandlerSelectors.basePackage(this.swaggerScanPackage)).paths(PathSelectors.any()).build();
    }

    private ApiInfo apiInfo() {
        log.info("##################################初始化API信息################################################");
        return (new ApiInfoBuilder()).title("APIs").description("…………").termsOfServiceUrl("https://js.dazhi.loan.com").version("1.0").build();
    }

    @Override
    public void setEnvironment(Environment environment) {

    }
}

2:再看我的工程結(jié)構(gòu)吧:
Spring Boot 之spring.factories
發(fā)現(xiàn)我的SwaggerConfig 類和 SpringBoot 的啟動(dòng)類ConfigApplication.java 不在同一級(jí)目錄下,所以當(dāng)Spring Boot 自動(dòng)掃描包的時(shí)候,是掃描不到我的SwaggerConfig 的配置的,也就在控制臺(tái)沒有Swagger的打印的信息:

Spring Boot 之spring.factories

所以這時(shí)候我如果想要把SwaggerConfig 加載到Spring容器中的話 要怎么辦呢?下面介紹兩種方式
①:在Spring Boot Application 主類上 使用@Import 注解
Spring Boot 之spring.factories

啟動(dòng)就可以看到Swagger的基礎(chǔ)信息:
Spring Boot 之spring.factories

②:現(xiàn)在我們將其改造一下,采用spring.factories 的方式去加載SwaggerConfig類,在resources目錄下新建一個(gè)META-INF 的目錄,然后在
新建一個(gè)spring.factories 的文件,里面的內(nèi)容為:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.sg.config.SwaggerConfig

然后在把Spring Boot 啟動(dòng)類上的@Import注釋掉,啟動(dòng)發(fā)現(xiàn)也可以把SwaggerConfig加載到Spring 容器中
Spring Boot 之spring.factories

到這就完成了加載一個(gè)Spring 不能掃描到的一個(gè)類,他可以是第三方的,也可以是自己寫的,只要是Spring Boot 默認(rèn)掃描路徑不能夠掃描到,都可以使用這種方式去加載?。?!

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。


標(biāo)題名稱:SpringBoot之spring.factories-創(chuàng)新互聯(lián)
瀏覽路徑:http://weahome.cn/article/jdiej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部