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

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

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