提交 2c050c05 编写于 作者: Z zhangxin10

新添加turnOn属性,并提交测试类

上级 39fb666a
...@@ -16,9 +16,11 @@ public class TraceParser implements BeanDefinitionParser { ...@@ -16,9 +16,11 @@ public class TraceParser implements BeanDefinitionParser {
// 只能存在一个 // 只能存在一个
throw new IllegalStateException("Duplicate spring bean id "); throw new IllegalStateException("Duplicate spring bean id ");
} }
boolean turnOn = Boolean.parseBoolean(element.getAttribute("turnOn"));
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(); RootBeanDefinition rootBeanDefinition = new RootBeanDefinition();
rootBeanDefinition.setLazyInit(false); rootBeanDefinition.setLazyInit(false);
rootBeanDefinition.setBeanClass(TracingEnhanceProcessor.class); rootBeanDefinition.setBeanClass(TracingEnhanceProcessor.class);
rootBeanDefinition.getPropertyValues().addPropertyValue("turnOn", turnOn);
parserContext.getRegistry().registerBeanDefinition(TRACE_APPLICATION_BEAN_NAME, rootBeanDefinition); parserContext.getRegistry().registerBeanDefinition(TRACE_APPLICATION_BEAN_NAME, rootBeanDefinition);
return rootBeanDefinition; return rootBeanDefinition;
} }
......
...@@ -23,6 +23,16 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso ...@@ -23,6 +23,16 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso
private final Set<TracingPattern> beanSet = new ConcurrentHashSet<TracingPattern>(); private final Set<TracingPattern> beanSet = new ConcurrentHashSet<TracingPattern>();
private boolean turnOn;
public boolean isTurnOn() {
return turnOn;
}
public void setTurnOn(boolean turnOn) {
this.turnOn = turnOn;
}
@Override @Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
beanSet.addAll(applicationContext.getBeansOfType(TracingPattern.class).values()); beanSet.addAll(applicationContext.getBeansOfType(TracingPattern.class).values());
...@@ -71,6 +81,10 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso ...@@ -71,6 +81,10 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso
@Override @Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (!turnOn) {
return bean;
}
String packageName = bean.getClass().getPackage().getName(); String packageName = bean.getClass().getPackage().getName();
String className = bean.getClass().getSimpleName(); String className = bean.getClass().getSimpleName();
TracingPattern matchClassBean = null; TracingPattern matchClassBean = null;
......
package com.ai.cloud.skywalking.plugin.spring.test; package com.ai.cloud.skywalking.plugin.spring;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppTest01 { public class TestBean {
public void testPrintln(String value){ public void testPrintln(String value){
System.out.println(value); System.out.println(value);
} }
@Test public static void main(String[] args){
public void testBean(){
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath*:springConfig-common.xml"); ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath*:springConfig-common.xml");
AppTest01 appTest01 = classPathXmlApplicationContext.getBean(AppTest01.class); TestBean testBean = classPathXmlApplicationContext.getBean(TestBean.class);
appTest01.testPrintln("Hello World"); testBean.testPrintln("Hello World");
} }
} }
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
http://cloud.asiainfo.com/schema/skywalking http://cloud.asiainfo.com/schema/skywalking
http://cloud.asiainfo.com/schema/skywalking/skywalking.xsd"> http://cloud.asiainfo.com/schema/skywalking/skywalking.xsd">
<skywalking:trace turnOn="true"/> <skywalking:trace/>
<skywalking:tracing-bean className="AppTest01" method="testPrintln*" packageName="*"/> <!--<skywalking:tracing-bean className="AppTest01" method="testPrintln*" packageName="*"/>-->
<bean id="testBean" class="com.ai.cloud.skywalking.plugin.spring.test.AppTest01"/> <bean class="com.ai.cloud.skywalking.plugin.spring.TestBean" />
</beans> </beans>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册