springboot(一)@Configuration中無法透過@Value注入配置檔案

由於springboot涉及的一些載入順序的問題,在@Configuration修改的配置類中有時無法獲取到配置檔案的資料,使用@Value總是獲取到的是null,在我使用它配置mybatis-plus時,無論是用網上說的方式,使用static修飾或者注入placeHolder等統統無效,總是null。

其實處理方法很簡單,只需要使用Enviroment獲取配置就可以了,不過類要實現EnvironmentAware,我配置mybatis-plus的方法如下,其中

mp。scanner。package

就是配置檔案內的key。

@Configuration//@MapperScan(“com。mybatis。plus。mybatisplususe。mapper*”)//這個註解,作用相當於下面的@Bean MapperScannerConfigurer,2者配置1份即可public class MybatisPlusConfig implements EnvironmentAware { private Environment environment; @Override public void setEnvironment(Environment environment) { this。environment = environment; } /** * mybatis-plus分頁外掛
* 文件:http://mp。baomidou。com
*/ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; } /*邏輯刪除配置*/ @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } /** * SQL執行效率外掛 */ @Bean @Profile({“dev”,“test”})// 設定 dev test 環境開啟 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); performanceInterceptor。setFormat(true);// performanceInterceptor。setMaxTime(500);// performanceInterceptor。setWriteInLog(true); return performanceInterceptor; } /*樂觀鎖外掛*/ @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } /** * 相當於頂部的: * {@code @MapperScan(“com。baomidou。springboot。mapper*”)} * 這裡可以擴充套件,比如使用配置檔案來配置掃描Mapper的路徑 */ @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer(); String mpScannerPackage = environment。getProperty(“mp。scanner。package”); scannerConfigurer。setBasePackage(mpScannerPackage); return scannerConfigurer; }}