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
这个格式看着不太好看。。我明天贴到本地来看吧,手机显示好费劲
相似问题