新添加turnOn属性,并提交测试类
This commit is contained in:
parent
39fb666a09
commit
2c050c0597
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,19 +1,17 @@
|
|||
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>
|
||||
Loading…
Reference in New Issue