新建了一个新类(A)后,在类中用注解将属性注入。类名(A)上用 @Component ,类中的一个属性(name)上用 @Autowired或@Resource,

方法(fun)中通过 属性(name)来调用name固有的方法,我调用的时候 是 :

new A().fun();

结果运行报错,报 java.lang.NullPointerException,说 name属性为空。

后面才知道,当使用注解注入之后,重新new的话,注解的功能会失效。

解决方法,调用的时候:

@resourse A a;
a.fun();

  经查询发现,spring的创建对象步骤在类加载时就已经通过spring容器创建成功了,用new关键字new出来的对象,jvm会重新分配对应的空间和指针,

这完全就不受spring管理。所以spring管理的任何其它的东西你就拿不到,也就会报NullPointerException错,所以在此时一旦自行New,所有的相应注入

即会失败,在使用时就产生了冲突。

  注意,这里并不是说使用了注解以后就不能new,测试结果是,能实例化,并且相应的方法也是可以使用的。但是,实例化后相应Class 相关的注入也

就会集体失效,除非你所有步骤都用new的方式,否则它还是会报错。

  至于正确的解决方案,使用了注解,就别使用New, 二者不可兼得。

Spring new对象时注解失效的更多相关文章

  1. 【Spring】手动获取spring容器对象时,报no qualifying bean of type is defined

    手动获取容器对象时,报no qualifying bean of type is defined, 经过调查,发现手动获取的时候,该类所在的包必须经过spring容器初始化. 1.SpringConf ...

  2. spring 获取对象的注解

    BeanDefinition definition = registry.getBeanDefinition(name); if (definition instanceof AnnotatedBea ...

  3. Spring aop注解失效

    问题 在spring 中使用 @Transactional . @Cacheable 或 自定义 AOP 注解时,对象内部方法中调用该对象的其他使用aop机制的方法会失效. @Transactiona ...

  4. Spring中@Translational注解失效场景

    今天面试被问到@Translational注解什么场景下失效,我一脸懵逼,说的恍恍惚惚的,下来我就总结一下@Translational注解失效的场景! @Transactional 注解相信大家并不陌 ...

  5. Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)

    Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效) 前言 今天在使用Spring cache的Cacheable注解的过程中遇见了一个Cacheable注解失效的问题, ...

  6. SpringBoot CGLIB AOP解决Spring事务,对象调用自己方法事务失效.

    对于像我这种喜欢滥用AOP的程序员,遇到坑也是习惯了,不仅仅是事务,其实只要脱离了Spring容器管理的所有对象,对于SpringAOP的注解都会失效,因为他们不是Spring容器的代理类,Sprin ...

  7. Spring 代理对象,cglib,jdk的问题思考,AOP 配置注解拦截 的一些问题.为什么不要注解在接口,以及抽象方法.

    可以被继承 首先注解在类上是可以被继承的 在注解上用@Inherited /** * Created by laizhenwei on 17:49 2017-10-14 */ @Target({Ele ...

  8. spring事务注解失效问题

    问题描述: 由于工作需要,需要在spring中配置两个数据源,有一天突然发现@Transactional注解失效 环境框架: springmvc+spring+spring jdbcTemplate ...

  9. Spring 中初始化一个Bean对象时依赖其他Bean对象空指针异常

    1. Bean依赖关系 一个配置类的Bean,一个实例Bean: 实例Bean初始化时需要依赖配置类的Bean: 1.1 配置类Bean @ConfigurationProperties(prefix ...

随机推荐

  1. 面试-SizeOf一个对象会得到什么?

    相关资料: 1.https://zhidao.baidu.com/question/283124338.html unit Unit1; interface uses Windows, Message ...

  2. Augustus安装问题 (3.0 以上都适用)

    augustus 3.2 (3.3) 编译失败 原因是依赖boost库,而且需要bamtools,从而导致编译失败 报错1: $ make mkdir -p bincd src && ...

  3. iOS播放系统声音和震动

    在需要声音的类的.h文件中添加     #import <AudioToolbox/AudioToolbox.h>static SystemSoundID shake_sound_male ...

  4. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  5. 谈谈 老罗和&quot;锤子&quot;

    老罗就不用多说了,搞科技公司的相声演员(笑).当时锤子公布会我看了直播.就是想看看在微博上吹翻了的手机究竟有多厉害.或者仅仅是一个笑话,事实上也希望国产手机可以有所突破,而不是一致的拼配置和简单的搞点 ...

  6. Ajax-ajax实例4-多级联动菜单

    项目结构: 项目运行: 技术要点: 1.4.1 技术要点在分析具体的实现代码之前,先介绍一下本例的几个技术要点.1 .选项的动态创建与删除document 对象的 createElement 方法可以 ...

  7. 让IE6支持min-height,max-height等的方法

    1.IE6支持max-height解决方法    IE6支持最大高度解决CSS代码:.yangshi{max-height:1000px;_height:expression((document.do ...

  8. jQuery源码分析-jQuery中的循环技巧

    作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. 前记:本文收集了jQuery ...

  9. 简单十招提高jQuery执行效率

    1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的j ...

  10. thinkphp 无限级分类的思想 分析

    $list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')- ...