package org.springside.examples.showcase.config;
import org.javasimon.console.SimonConsoleServlet;
import org.javasimon.spring.MonitoredMeasuringPointcut;
import org.javasimon.spring.MonitoringInterceptor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 演示配置能力,包括AOP配置与Servlet配置
*/
@Configuration
public class JavaSimonConfig {
// 定义AOP, 对标注了@Monitored的方法进行监控
@Bean(name = "monitoringAdvisor")
public DefaultPointcutAdvisor monitoringAdvisor() {
DefaultPointcutAdvisor monitoringAdvisor = new DefaultPointcutAdvisor();
monitoringAdvisor.setAdvice(new MonitoringInterceptor());
monitoringAdvisor.setPointcut(new MonitoredMeasuringPointcut());
return monitoringAdvisor;
}
// 定义Servlet URL Mapping
@Bean
public ServletRegistrationBean dispatcherRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new SimonConsoleServlet());
registration.addInitParameter("url-prefix", "/javasimon");
registration.addUrlMappings("/javasimon/*");
return registration;
}
}