java代码
@Component
public class SpringBeanUtils<T> implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringBeanUtils.applicationContext = applicationContext;
}
public static <T> T getBean(Class<T> clazz) {
return applicationContext != null?applicationContext.getBean(clazz):null;
}
public static Object getBeanByString(String beanName) throws BeansException {
return applicationContext.getBean(beanName);
}
}
arthas使用如下
getStatic SpringBeanUtils applicationContext
$ ognl '#context=@com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory@contexts.iterator.next, #context.getBean("userServiceImpl").findUser(1)'
@User[
id=@Integer[1],
name=@String[Deanna Borer],
]
Arthas之调用SpringBoot获取Bean | wangdaye's blog