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

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

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

烦请知道的大神给个解决方案啊。
...全文
2107 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
为什么无法注入???肯定是代码的问题。。。
  • 打赏
  • 举报
回复
相关推荐
发帖
Java

4.9w+

社区成员

Java相关技术讨论
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2017-11-03 05:08
社区公告
暂无公告