概述
提出问题:
在Spring 容器中,抽象类可以加上@Compoment注解后,实现调用内部的方法吗?
类设计与测试
抽象类加注解,无子类实现
接口
public interface RechargeFacade { /** * 测试接口 */ void recharge();}
实现
@Servicepublic abstract class RechargeFacadeImpl implements RechargeFacade { @Override public void recharge() { System.out.println("asdasd1"); }}
测试
@SpringBootApplication@ComponentScan(basePackages = {"xxxx"})public class AppFinanceApplication { @Resource private RechargeFacade rechargeFacade; public static void main(String[] args) { SpringApplication.run(AppFinanceApplication.class, args).getBean(RechargeFacade.class); } @PostConstruct void init(){ System.out.println("asdasd======="); rechargeFacade.recharge(); }}
结果
Description:A component required a bean of type 'cn.lskiot.finance.compose.facade.RechargeFacade' that could not be found.
抽象类加一个子类继承
抽象类子类未加注解
public class asd extends RechargeFacadeImpl {}
结果
A component required a bean of type 'cn.lskiot.finance.compose.facade.RechargeFacade' that could not be found.
抽象类子类加注解
@Servicepublic class asd extends RechargeFacadeImpl {}
结果
问题引入
首先明确一个问题:抽象类不能生成实例对象,spring无法注入。
原因:
spring的原理是启动服务器时读取配置文件,取得类名后利用反射机制在spring上下文中生成一个单例的对象,由spring注入属性并维护此对象的状态,抽象类在反射生成对象时就已经失败了,后面的不会进行。
最后
以上就是闪闪枕头为你收集整理的java抽象类可以有构造函数吗_Spring 中的抽象类可以被注入吗?的全部内容,希望文章能够帮你解决java抽象类可以有构造函数吗_Spring 中的抽象类可以被注入吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复