扫码关注官方订阅号
不知题目说清楚没,就是SpringMVC中,使用了@Autowired注释,自动装配成员变量,正常情况下没有问题,但是当这个类通过java的反射机制调用时,自动装配失败,成员变量时空值,出现空指针异常。有没有大神知道原因或者解决办法? 已经困扰我很久了,多谢多谢!
学习是最好的投资!
有一个问题,你是如何通过反射机制调用的。如果是自己通过反射建立的新对象,注入肯定不生效;就像你自己通过new建立一个新对象,这个对象里的注入是不生效的,除非你使用@Configurable注解之类的配置。
参考: http://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-field-null
之前遇到一个问题是这样的,我们有一个类使用了自定义注解@ScheduleClass,
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface ScheduleClass { }
然后按理说使用ApplicationContextManager.getBeansWithAnnotation(ScheduleClass.class);就能拿到这个类的Class对象,然后做后续的操作。但是后来加入了一个AOP,发现ApplicationContextManager.getBeansWithAnnotation(ScheduleClass.class);取不到对应的class对象,去掉AOP就OK了,猜想应该是使用反射之后,注解会失效。我想跟你遇到的情况差不多吧。后来我们直接用哪个类.class获取它的class对象。对你这种情况,等高手解决
请问一下,这问题解决没有,今天我也遇到了,时间过着么长,不知在不在
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
有一个问题,你是如何通过反射机制调用的。如果是自己通过反射建立的新对象,注入肯定不生效;就像你自己通过new建立一个新对象,这个对象里的注入是不生效的,除非你使用@Configurable注解之类的配置。
参考: http://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-field-null
之前遇到一个问题是这样的,我们有一个类使用了自定义注解@ScheduleClass,
然后按理说使用ApplicationContextManager.getBeansWithAnnotation(ScheduleClass.class);就能拿到这个类的Class对象,然后做后续的操作。但是后来加入了一个AOP,发现ApplicationContextManager.getBeansWithAnnotation(ScheduleClass.class);取不到对应的class对象,去掉AOP就OK了,猜想应该是使用反射之后,注解会失效。我想跟你遇到的情况差不多吧。后来我们直接用哪个类.class获取它的class对象。对你这种情况,等高手解决
请问一下,这问题解决没有,今天我也遇到了,时间过着么长,不知在不在