java 动态修改代码_不直接修改JAVA源代码,运行中动态修改代码改变行为

package org.springframework.context.annotation;//Spring包

import com.navercorp.pinpoint.bootstrap.interceptor.AroundInterceptor; //注入字节码

import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor;

import com.navercorp.pinpoint.bootstrap.interceptor.registry.InterceptorRegistry;

import java.util.Iterator;

import java.util.LinkedHashSet;

import java.util.Set;

import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;

import org.springframework.beans.factory.config.BeanDefinition;

import org.springframework.beans.factory.config.BeanDefinitionHolder;

import org.springframework.beans.factory.support.AbstractBeanDefinition;

import org.springframework.beans.factory.support.BeanDefinitionDefaults;

import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;

import org.springframework.beans.factory.support.BeanDefinitionRegistry;

import org.springframework.beans.factory.support.BeanNameGenerator;

import org.springframework.core.env.Environment;

import org.springframework.core.env.EnvironmentCapable;

import org.springframework.core.env.StandardEnvironment;

import org.springframework.core.io.ResourceLoader;

import org.springframework.util.Assert;

import org.springframework.util.PatternMatchUtils;

23810e660d64123986836af19df1f455.png

protected Set doScan(String... basePackages) {

Interceptor _$PINPOINT$_interceptor = InterceptorRegistry.getInterceptor(15);

Object _$PINPOINT$_result = null;

Throwable _$PINPOINT$_throwable = null;

Object[] _$PINPOINT$_args = new Object[]{basePackages};

((AroundInterceptor)_$PINPOINT$_interceptor).before(this, _$PINPOINT$_args);

try {

Assert.notEmpty(basePackages, "At least one base package must be specified");

Set beanDefinitions = new LinkedHashSet();

String[] var3 = basePackages;

int var4 = basePackages.length;

for(int var5 = 0; var5 < var4; ++var5) {

String basePackage = var3[var5];

Set candidates = this.findCandidateComponents(basePackage);

Iterator var8 = candidates.iterator();

while(var8.hasNext()) {

BeanDefinition candidate = (BeanDefinition)var8.next();

ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(candidate);

candidate.setScope(scopeMetadata.getScopeName());

String beanName = this.beanNameGenerator.generateBeanName(candidate, this.registry);

if (candidate instanceof AbstractBeanDefinition) {

this.postProcessBeanDefinition((AbstractBeanDefinition)candidate, beanName);

}

if (candidate instanceof AnnotatedBeanDefinition) {

AnnotationConfigUtils.processCommonDefinitionAnnotations((AnnotatedBeanDefinition)candidate);

}

if (this.checkCandidate(beanName, candidate)) {

BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(candidate, beanName);

definitionHolder = AnnotationConfigUtils.applyScopedProxyMode(scopeMetadata, definitionHolder, this.registry);

beanDefinitions.add(definitionHolder);

this.registerBeanDefinition(definitionHolder, this.registry);

}

}

}

_$PINPOINT$_throwable = null;

((AroundInterceptor)_$PINPOINT$_interceptor).after(this, _$PINPOINT$_args, beanDefinitions, (Throwable)_$PINPOINT$_throwable);

return beanDefinitions;

} catch (Throwable var17) {

_$PINPOINT$_result = null;

((AroundInterceptor)_$PINPOINT$_interceptor).after(this, _$PINPOINT$_args, _$PINPOINT$_result, var17);

throw var17;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值