我是靠谱客的博主 欣慰黑裤,最近开发中收集的这篇文章主要介绍java 抽象类 注入_如何在抽象类中注入bean,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

抽象类是无法实例化的,因此无法使用@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、工程图

5d5a950972e8b38bb179edba7ff264ad.png

jar包只需要引入spring-context即可。

2、ApplicationContextUtil

packagespring.chapter1.utils;importorg.springframework.beans.BeansException;importorg.springframework.context.Applic

最后

以上就是欣慰黑裤为你收集整理的java 抽象类 注入_如何在抽象类中注入bean的全部内容,希望文章能够帮你解决java 抽象类 注入_如何在抽象类中注入bean所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部