springboot 抽象类中 怎么注入其他实例?

HanDingLiyy 2017-11-03 05:08:08
代码场景是这样的:
抽象类定义抽象方法,不同的子类去override,
但是不同的子类会公用一些方法,所以会将这些公用的方法放在abstract类中
这些公用的方法 会用到其他调用其他服务类,所以需要将这些服务类注入到abstract中。

但是现在,无法注入这些服务类?

烦请知道的大神给个解决方案啊。
...全文
3129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46051525 2021-04-06
  • 打赏
  • 举报
回复
引用 8 楼 MKmask 的回复:
[quote=引用 6 楼 Enpong 的回复:]一.抽象类不能被实例化,因此抽象类无法交给Spring管理,使用@Autowired是无法注入其他实例的,在方法中调用实例肯定是空的; 二.我的解决方案: 1.将抽象类的子类交由Spring管理,在子类中注入抽象类中需要使用的实例 2.在抽象类中的公用默认实现的方法中使用反射获取子类的字段(注入的实例)
老哥,有代码吗?我的子类是继承了一个抽象类,然后子类调用其他的方法,被注入的类一直为空。 例子: abstract class Father{} class son extends Father{ @Autowired private OtherService service; //这里一直都是null void test(){ service.method(); // 上面为null,这里就报错 } } [/quote]实例名默认为otherService,或者给OtherService指定名字
MKmask 2021-03-11
  • 打赏
  • 举报
回复
引用 6 楼 Enpong 的回复:
一.抽象类不能被实例化,因此抽象类无法交给Spring管理,使用@Autowired是无法注入其他实例的,在方法中调用实例肯定是空的; 二.我的解决方案: 1.将抽象类的子类交由Spring管理,在子类中注入抽象类中需要使用的实例 2.在抽象类中的公用默认实现的方法中使用反射获取子类的字段(注入的实例)
老哥,有代码吗?我的子类是继承了一个抽象类,然后子类调用其他的方法,被注入的类一直为空。 例子: abstract class Father{} class son extends Father{ @Autowired private OtherService service; //这里一直都是null void test(){ service.method(); // 上面为null,这里就报错 } }
Enpong 2019-09-01
  • 打赏
  • 举报
回复
一.抽象类不能被实例化,因此抽象类无法交给Spring管理,使用@Autowired是无法注入其他实例的,在方法中调用实例肯定是空的; 二.我的解决方案: 1.将抽象类的子类交由Spring管理,在子类中注入抽象类中需要使用的实例 2.在抽象类中的公用默认实现的方法中使用反射获取子类的字段(注入的实例)
哈希塞特 2019-01-25
  • 打赏
  • 举报
回复
可以注入,但不是注入这个抽象类,而是注入了这个抽象类的子类的代理类,这个子类必须被spring管理
RUA好多鱼~ 2019-01-10
  • 打赏
  • 举报
回复
如果要给一个类注入其他bean的话,你首先要看看你自己这个类是否被注册成bean了,如果没有被spring管理,那spring就不知道要给谁注入
linewon 2019-01-04
  • 打赏
  • 举报
回复
@Service("serviceName") @Autowired @Qualifier("serviceName") https://www.cnblogs.com/smileLuckBoy/p/5801678.html
李德胜1995 2017-11-03
  • 打赏
  • 举报
回复
为什么无法注入???肯定是代码的问题。。。

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧