spring属性注入的不细心错误

属性注入问题

个人博客:www.zgtsky.top

同个的对象,在一个类中注入成功,在另一个类中注入为null

问题:在检测各个需要的类上已经打上注解后,出现了在一个类A1中注入B属性成功了,但在另一个类A2中注入B属性却失败了。

原因:A1和A2获取对象引用的方式不一样,A1是通过注解方式使用对象引用,A2是通过new方式使用对象引用。

举例

当我们使用A1类时,我们是通过注解导入的

java 复制代码
 @Resource
 private A1 a1;

void method(){

// 使用a1;

}

而在使用A2类时,却是用new的方式,这样就会导致A2中的属性B没有注入,原因就是这个new的A2不是Spring IOC容器管理的那个。所以,在使用A2时也是要进行属性注入的方式导入,而不是在一个方法中new一个。

错误的使用:

java 复制代码
void methed(){
  A2 a2 = new A2();//错误的
}

正确的使用:

java 复制代码
@Resource
A2 a2;

void method(){
  //使用a2;
}
相关推荐
凸头8 分钟前
SpringDoc OpenAPI 泛型返回值完美解决方案
java
￰meteor12 分钟前
23种设计模式 -【工厂方法】
后端
Predestination王瀞潞16 分钟前
Java EE3-我独自整合(第一章:Spring入门)
java·spring·java-ee
克莱因35828 分钟前
Linux 进程(2)服务管理指令
java·linux·服务器
罗小爬EX33 分钟前
Arthas 实战指南(二):profiler生成火焰图实战
java·arthas·火焰图
nvvas39 分钟前
IDEA安装并且使用Roo Code工具
java·ide·人工智能
bjzhang751 小时前
SpringCloud——国产化改造,项目对接 TongWeb 嵌入版
后端·spring·spring cloud
菜鸟小九1 小时前
JVM垃圾回收
java·jvm·算法