All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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