博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring new对象时注解失效
阅读量:7236 次
发布时间:2019-06-29

本文共 583 字,大约阅读时间需要 1 分钟。

新建了一个新类(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, 二者不可兼得。

转载地址:http://neofm.baihongyu.com/

你可能感兴趣的文章
如何理解Java SE、Java EE、Java ME?
查看>>
Objective-C 入门(一)初识Objective-C
查看>>
Citrix虚拟化技术之六XenServer6.2许可证管理
查看>>
我的友情链接
查看>>
手把手教你搭建LyncServer2013之体验持久聊天室(十四)
查看>>
我的友情链接
查看>>
nagios 监控slave(check_mysql_health插件)
查看>>
字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
查看>>
我的友情链接
查看>>
四舍六入五留双规则
查看>>
CentOS下使用mail命令发送邮件
查看>>
mysql 获取当前日期前后的时间
查看>>
MySQL redo lock 死锁问题排查 & 解决过程
查看>>
Wappalyzer
查看>>
通过登陆IP记录Linux所有用户登录所操作的日志
查看>>
我只想很快找份Linux系统相关工作
查看>>
svn-- 节点处于冲突状态
查看>>
Spark on Yarn ”爬坑“集锦(spark1.2)
查看>>
mysql主从配置
查看>>
angular指令心得(ng-model)
查看>>