91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot 之spring.factories

發布時間:2020-07-25 10:39:05 來源:網絡 閱讀:1705 作者:龍愛海 欄目:編程語言
1.首先拋出一個問題:如果想要被Spring容器管理的Bean的路徑不再Spring Boot 的包掃描路徑下,怎么辦呢?也就是如何去加載第三方的Bean 呢?

有兩種方式可以解決:
這里我們使用Swagger的配置來做實驗。
1:首先一個Swagger的配置類:SwaggerConfig
SwaggerConfig 代碼:


@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<String> 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:再看我的工程結構吧:
Spring Boot 之spring.factories
發現我的SwaggerConfig 類和 SpringBoot 的啟動類ConfigApplication.java 不在同一級目錄下,所以當Spring Boot 自動掃描包的時候,是掃描不到我的SwaggerConfig 的配置的,也就在控制臺沒有Swagger的打印的信息:

Spring Boot 之spring.factories

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

啟動就可以看到Swagger的基礎信息:
Spring Boot 之spring.factories

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

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

然后在把Spring Boot 啟動類上的@Import注釋掉,啟動發現也可以把SwaggerConfig加載到Spring 容器中
Spring Boot 之spring.factories

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

小金县| 襄樊市| 孝昌县| 漳州市| 濉溪县| 建湖县| 华亭县| 新疆| 枝江市| 新源县| 南阳市| 宁城县| 郓城县| 金山区| 望都县| 宝兴县| 寻甸| 万年县| 赞皇县| 洮南市| 施甸县| 北海市| 张家界市| 东兰县| 平原县| 法库县| 盖州市| 瑞丽市| 绥宁县| 桐城市| 吴桥县| 精河县| 贵定县| 樟树市| 隆安县| 黄平县| 山东省| 敖汉旗| 安顺市| 瓦房店市| 玛多县|