Spring自定义类中@AutoWired标识的元素注入为null(2)

但是OrderRequest中orderService为null。(在controller层中注入service接口,在service层中注入orderService是有值的),尝试可很多解决办法,最后发现,原来spring自定义的类实例化时也需要用注入的方式,不能用new,否则脱离了spring的管理。改成如下方式就可以了:

@Autowired
private OrderRequest<Request1> request1;
@Autowired
private OrderRequest<Request2> request2;
 
public void method1(Request1 request ) {
    Order result = request1.orderInfoSave(request);
}
 
public void method2(Request2 request ) {
    Order result = request2.orderInfoSave(request);
}

总结:

如果在A类中的属性b有@Autowired这样的注解,则类A的实例化不能用new 操作,必须要用注入的方式,否则脱离了spring的管理;

解决方法:

调用ApplicationContextUtil.getApplicationContext().getBean("XXX", XXX.class);方法获取component

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4e4b00025c4f070ceff0aaaa441227ae.html