
springboot.monitor.SpringBootAutoConfiguration Maven / Gradle / Ivy
The newest version!
/*
* @(#)SpringBootAutoConfiguration.java 2022-6-27
*
* Copyright (c) 2022. All Rights Reserved.
*
*/
package springboot.monitor;
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.github.javaclub.monitor.component.PerfMonitorInterceptor;
import com.github.javaclub.monitor.component.alarm.AlarmMonitor;
import com.github.javaclub.monitor.component.alarm.DingTalkMessenger;
/**
* SpringBootAutoConfiguration
*
* @author Gerald Chen
* @version $Id: SpringBootAutoConfiguration.java 2022-6-27 17:42:25 Exp $
*/
@Configuration
public class SpringBootAutoConfiguration {
@Bean("internalDingTalkMessenger")
public DingTalkMessenger dingTalkMessenger() {
return new DingTalkMessenger();
}
@Bean("internalAlarmMonitor")
public AlarmMonitor internalAlarmMonitor(@Qualifier("internalDingTalkMessenger") DingTalkMessenger dingTalkMessenger) {
return new AlarmMonitor(dingTalkMessenger);
}
@Bean("perfMonitorPointcutAdvisor")
public DefaultPointcutAdvisor perfMonitorPointcutAdvisor() {
PerfMonitorInterceptor perfInterceptor = new PerfMonitorInterceptor();
DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor();
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression(PerfMonitorInterceptor.PERF_MONITOR_ANNOTATION_EXECUTION);
advisor.setPointcut(pointcut);
advisor.setAdvice(perfInterceptor);
return advisor;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy