概述
抽象类是无法实例化的,因此无法使用@Service等这种注解直接将抽象类交给ioc容器管理,但是项目中往往需要有很多子类公用抽象父类的模板方法,那么怎么实现呢?
错误演示
1、抽象类
@Componentpublic abstract classBaseService {
@Autowired
Dao dao;
}
2、子类
@Componentpublic class MyService extendsBaseService{public voidprint(){//运行时为null
System.out.print(dao.toString());
}
}
在我们实例化子类对象的时候,抽象父类不能实例化,因为spring注入的是实例对象,而不是类,所以spring不会将dao自动装配注入到一个实例中。
解决方法
一、使用ApplicationContextAware
1、工程图
jar包只需要引入spring-context即可。
2、ApplicationContextUtil
packagespring.chapter1.utils;importorg.springframework.beans.BeansException;importorg.springframework.context.Applic
最后
以上就是欣慰黑裤为你收集整理的java 抽象类 注入_如何在抽象类中注入bean的全部内容,希望文章能够帮你解决java 抽象类 注入_如何在抽象类中注入bean所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复