springboot学习(十八) 处理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分页插件<br>     * 文档:http://mp.baomidou.com<br>
     */
    @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;
    }


}

上一篇 springboot下将静态资源路径设置到磁盘的基本目录

下一篇 springboot2.0+druid+jpa启动报错org.hibernate.persister.entity.SingleTableEntityPersiste

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值