ElasticJobConfParser解析外部类有点疑惑,疑惑在注释中。

来源:3-19 定时任务通用组件封装-3

Panda_io

2020-12-23 17:06:15

ApplicationContext applicationContext = applicationReadyEvent.getApplicationContext();
Map<String,Object> beanMap = applicationContext.getBeansWithAnnotation(ElasticJobConfig.class);
for(Iterator<?> it = beanMap.values().iterator(); it.hasNext();){
Object confBean = it.next();
Class<?> clazz = confBean.getClass();
//内部类,匿名类Class会带$符号
if(clazz.getName().indexOf("$") > 0){
String className = clazz.getName();
//获取外部类的class对象,为啥要获取外部类class对象呀?外部类对象我觉得不一定被
//@ElasticJobConfig所修饰不是吗?
clazz = Class.forName(className.substring(0,className.indexOf("$")));
}

String jobTypeName = clazz.getInterfaces()[0].getSimpleName();
//获取配置项ElasticJobConfig
//假设beanMap里的这个实例是匿名类,请问老师您这里是获取外部类的注解,我们只能保证内部类被
//@ElasticJobConfig修饰了
//老师您这里获取外部类的注解实例能获取到吗?外部类一定会被注解吗?
//beanMap装的是被ElasticJobConfig注解的bean,如果外部类也注解了自然会遍历到它
//这是不是有点矛盾呀老师
ElasticJobConfig conf = clazz.getAnnotation(ElasticJobConfig.class);
写回答

1回答

阿神

2020-12-23

这个格式看着不太好看。。我明天贴到本地来看吧,手机显示好费劲

0
handa_io
hp>好的谢谢老师

h020-12-24
共1条回复

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程