service手动实例化(new)导致类中的spring对象无法注入的问题解决


下面说的这个画横线的可能是错误的,因为我之前用controller继承父类的注解对象的时候成功了,所以可能这次的唯一原因就是

不该把本该从ioc容器中拿出的对象通过new的方式实例化,至于继承注解对象应该是可以的。

首先,如果打算用继承,那么父类被注入的对象是无法继承的,手动注入即可,比如 @Autowired,

因为本质上是从spring ioc容器中拿对象,所以像这种想要继承父类service中通过@Autowired注入的对象的目的是实现不了的,只能手动注入。

(比如这次我通过把父类service中的通过注解注入的对象加上 public,然后让子service试图继承过来,实际上是不可行的,是注入不了的)

Service对象,必须通过spring注入的方式声明,不能new一个出来,否则Service中的对象将无法被spring注入,比如mapper。

例如:

这里的 addGroupService 之前是通过 new 出来的,结果导致里 Service 里面的mapper 为空,

所以只要用spring的方式注入这个service就行了,例如 @Autowired

这里我把 AddGroupService addGroupService = new AddGroupService(); 注释掉了,然后 @Autowired 一个 AddGroupService 对象,然后就成功注入了

猜你喜欢

转载自www.cnblogs.com/kinome/p/10190373.html