当前位置 博文首页 > 无限迭代中......:Spring Boot——Druid在application.yml文件
在使用aop-patterns配置的时候发现Spring监控无效
Druid版本:1.1.22
如果SpringBoot的配置使用的是properties文件,该配置正常。
如果使用yml作为配置文件,则该配置无效。
似乎不能以“-”作为分隔符。?
使用了ConditionalOnProperty
注解,该配置类并不会生效。
方法一:重写DruidSpringAopConfiguration
如果我们想要使用yml
文件,并且希望该配置生效,我们可以定义自己的配置文件,显示的注册相关的bean
对象。
package com.jianggujin.love;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
import org.aopalliance.aop.Advice;
import org.springframework.aop.Advisor;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.aop.support.RegexpMethodPointcutAdvisor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@Configuration
public class DruidConfiguration{
@Bean
public Advice advice() {
return new DruidStatInterceptor();
}
@Bean
public Advisor advisor(DruidStatProperties properties) {
return new RegexpMethodPointcutAdvisor(properties.getAopPatterns(), advice());
}
@Bean
public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
advisorAutoProxyCreator.setProxyTargetClass(true);
return advisorAutoProxyCreator;
}
}
方法二:直接修改yml中aop-patterns字段为逗号分隔的字符串?
修改yml中aop-patterns字段为逗号分隔的字符串,不要使用-符号的数组
Druid Spring Boot Starter配置aop无效
阿里druid-spring-boot-starter 配置(配置完成后不需要在配置类写)根据阿里官方个人整理
cs