@Component
@Configuration
public class JobConfigParser implements ApplicationContextAware {
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
this.environment = ctx.getEnvironment();
Map<String, Object> beanMap = ctx.getBeansWithAnnotation(ElasticJobConfig.class);
Iterator var3 = beanMap.values().iterator();
while(var3.hasNext()) {
Object confBean = var3.next();
Class<?> clz = confBean.getClass();
this.getJobTypeClass(clz);
String jobTypeName = this.jobTypeClass.getSimpleName();
ElasticJobConfig conf = this.findElasticJobConfigAnnot(clz);
String jobClass = clz.getName();
if (jobClass.contains("$$EnhancerBySpringCGLIB")) {
jobClass = jobClass.substring(0, jobClass.indexOf("$$EnhancerBySpringCGLIB"));
}
String[] jobNames = conf.name();
if (jobNames == null) {
log.error("ElasticJobConf job name error. jobClass:{}", jobClass);
throw new IllegalArgumentException("ElasticJobConf job name error. jobClass:" + jobClass);
}
}
}
}
public ElasticJobConfig findElasticJobConfigAnnot(Class<?> clz) {
ElasticJobConfig elasticJobConfig = (ElasticJobConfig)clz.getAnnotation(ElasticJobConfig.class);
if (elasticJobConfig == null && clz.getSimpleName().contains("SpringCGLIB")) {
Class tmpClass = clz.getSuperclass();
for(int i = 0; i < 3; tmpClass = tmpClass.getSuperclass()) {
elasticJobConfig = (ElasticJobConfig)tmpClass.getAnnotation(ElasticJobConfig.class);
if (elasticJobConfig != null) {
return elasticJobConfig;
}
++i;
}
}
return elasticJobConfig;
}
相关推荐
UVM验证中,为什么我的pack_bytes()返回长度是0?手把手教你排查自定义do_pack函数
本文深入解析UVM验证中pack_bytes()返回长度为0的常见原因及系统排查方法。从UVM打包机制原理出发,详细列举了super.do_pack()缺失、field automation冲突等典型问题,并提供动态数组处理、位宽计算等进阶调试技巧,帮助开发者快速定位和解决自定义do_pack函数问题。
EnhancerBySpringCGLIB 获取getParameterAnnotations为null的解决办法
spring CGLIB动态代理引起的获取方法参数注解为null的解决办法
别再怕ADRC调参了!手把手教你用MATLAB/Simulink搞定TD、ESO、NLSEF(附完整参数表)
本文详细解析了ADRC(自抗扰控制)的调参方法,通过MATLAB/Simulink实战演示,帮助工程师快速掌握TD、ESO和NLSEF模块的参数整定技巧。文章提供了完整的参数表和调参指南,解决ADRC调参难题,提升控制系统的鲁棒性和性能。
获取代理bean的原始对象
public class AopTargetUtil { /** * 获取 目标对象 * @param proxy 代理对象 * @return * @throws Exception */ public static Object getTarget(Object proxy) throws Exception { if(!A...
Orange:一个基于 Python 的数据挖掘和机器学习平台
Orange是一个开源的数据挖掘和机器学习平台,采用可视化编程方式,用户可通过拖拽组件构建数据分析工作流。它支持交互式数据探索、多种机器学习算法,并允许Python脚本扩展。Orange特别适合教育和研究,提供直观的界面和丰富的可视化工具。最新版本为3.39.0,支持Windows、macOS和Linux系统。作为GPL许可的免费工具,它既能满足初学者需求,又能通过Python集成实现高级功能。
基于Joplin和Joplin Server搭建私有云笔记
我们知道,多端同步功能是笔记工具最重要的功能。只有实现了多端同步,我们才能在工作电脑和手机之间无缝切换笔记体验。Joplin 在同步上做得不错,支持 Dropbox、OneDrive 和 AWS s3(当然国内都没法用),支持 WebDAV 协议,也支持自家的 Joplin Server。 本文介绍如何在自己的服务器上搭建 Joplin Server,并配置好 Joplin Desktop 的同步功能。 前置条件 安装docker 创建 Joplin Server 配置文件 创建配置文件,~/docke
开发常遇问题$$EnhancerBySpringCGLIB$$f46076d9
开发常遇报错
VASP实战:从非共线磁矩到自旋轨道耦合磁各向异性能的完整计算流程解析
本文详细解析了VASP中从非共线磁矩计算到自旋轨道耦合磁各向异性能的完整流程。通过实战案例和参数配置技巧,帮助研究者掌握非线性磁矩计算的关键步骤,包括SOC参数设置、文件传递逻辑以及磁各向异性能的精确提取方法,为材料磁性研究提供实用指导。
spring cglib 代理 无法获取父类属性_深入理解Spring框架之AOP实现原理
本篇内容将为下一篇@Async注解实现原理做铺垫,转自开源中国:https://dwz.cn/O09CJ3hSpring AOP动态代理支持的核心jdk动态代理:java.lang.reflect.InvocationHandler对应的方法拦截器:public Object invoke(Object proxy, Method method, Object[] args) ...
从封装到先进封装:一文讲透Chiplet、2.5D/3D堆叠与系统集成
封装是芯片产业链中连接硅片与电路板的桥梁,承担物理保护、电气连接、散热与机械支撑等核心任务。传统封装从DIP、QFP发展到BGA,通过提升引脚密度满足早期性能需求。随着摩尔定律放缓,单纯缩小晶体管尺寸难以为继,先进封装应运而生,其核心理念从“封装单颗芯片”转向“系统级高密度集成”。扇出型封装、2.5D硅中介层、3D堆叠、Chiplet和系统级封装等技术,通过微米级互连和垂直堆叠,大幅提升I/O密度与带宽,成为AI芯片、HBM存储、高性能计算等领域的关键支撑。本文梳理先进封装的技术演进、分层架构与工程难点,帮
①电子产品拆解分析-暖手宝
电子产品拆解分析-暖手宝 ①按键三档调温暖手; ②长按进入氛围呼吸灯; ③安卓接口充电以及支持USB输出;
手写Spring1——扫描指定包,获取注解类!
🔥本篇概览:详细讲解了手写Spring框架的扫描指定包,获取注解类全流程!🌈⭕🔥
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
spring扫描包获取注解类
查找某注解修饰的所有类使用 ClassPathScanningCandidateComponentProvider 进行扫描。 查找某注解修饰的方法,先找到那个类,然后得到所有的方法,使用AnnotatedElementUtils.hasAnnotation判断方法是否被某注解修饰即可 下面是一个简单的例子 ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvide
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
解决Spring和SpringMVC扫描注解类的冲突问题
最正确的配置方式: 在主容器中applicationContext.xml中,将Controller的注解排除掉 而在springmvc.xml中,将Service注解给去掉 因为spring的context是父子容器,所以会产生冲突,由ServletContextListener产生的是父容器,springMVC产生
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
spring组件扫描注解类出现NoClassDefFoundError错误
spring框架学习之填坑之旅
【Spring和SpringMVC】自动扫描注解类的问题
尊重原创原文链接:http://blog.youkuaiyun.com/u014277445/article/details/52282697 Spring MVC项目中通常会有二个配置文件,spring-servlet.xml和applicationContext.xml二个配置文件,通常会出现以下几个配置: <context:annotation-config />它的作用是隐式...
componentscan扫描多个包_spring注解学习 包扫描 注解类
代码:https://github.com/jackhbr/spring-anno/tree/master/springannoone @Configuration 配置类,类似一个xml文件,基本上springxml文件能做的,在这个配置类李都能做。@ComponentScan("com.hbr.one") 包扫描,也就是bean实例添加注解时的前提条件时这个在包扫描的路径中。@Compon...
Spring2.5.6 AnnotationSessionFactoryBean自动扫描注解类
<br /> 如果你使用早前版本的Spring,又恰好采用了Annotation注解方式(而非传统XML方式)配置Hibernate对象关系映射,那么在通过org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean配置sessionFactory时,你一定对annotatedClasses、annotatedPackages有一种说不出的胸闷的感觉,如此以高配置性见长的Spring,怎么在这一个小小的环节上就不能做得再
SpringMVC+MyBatis - 7 Spring自动扫描注解类的冲突问题
SpringMVC+MyBatis - 7 Spring自动扫描注解类的冲突问题 Spring MVC项目中通常会有二个配置文件,sprng-servlet.xml和applicationContext.xml二个配置文件,通常会出现以下几个配置 1. 它的作用是隐式地向 Spring 容器注册 - AutowiredAnnotationBeanPostProcess
Spring自动扫描注解类的冲突问题
原文地址:http://www.blogjava.net/crazycy/archive/2014/07/12/415738.html Spring MVC项目中通常会有二个配置文件,spring-servlet.xml和applicationContext.xml二个配置文件,通常会出现以下几个配置 1.<context:annotation-config /> ...
Spring和SpringMVC自动扫描注解类的冲突问题
Spring MVC项目中通常会有二个配置文件,spring-servlet.xml和applicationContext.xml二个配置文件,通常会出现以下几个配置: 1. 它的作用是隐式地向 Spring 容器注册 - AutowiredAnnotationBeanPostProcessor、 - CommonAnnotationBeanPostPro
127



被折叠的 条评论
为什么被折叠?



