spring针对抽象类注入属性

打印 上一主题 下一主题

主题 1049|帖子 1049|积分 3147

不绝以为抽象类既然不能被实例化,那么天然的,也就不能被spring管理,既然不能被spring管理,天然也就不能使用@Autowired大概@Resource来注入属性了,但是实在是可以的,这样子,当我们有公用的代码的时间就不需要再使用类似util的方式来实现,而是通过继续就行了。下面show you code。
一、配置一下spring扫描路径beans-abs.xml:
<xmlversion="1.0"encoding=“utf-8”>
<beansxmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:context=“http://www.springframework.org/schema/context”
xsi:schemaLocation=“http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd”>
context:component-scanbase-package=“com.roadjava.test.spring.abs”/

二、界说一个抽象类
packagecom.roadjava.test.spring.abs;
importcom.roadjava.test.spring.abs.svc.impl.GoodsServiceImpl;
importorg.springframework.beans.factory.annotation.Autowired;
importjavax.annotation.Resource;
publicabstractclassAbstractConsumer{
//@Resource两者都可以
@Autowired
privateGoodsServiceImplgoodsServiceImpl;
publicvoidhandle(Stringstr){
goodsServiceImpl.say();
}
}
三、用到的GoodsServiceImpl:
packagecom.roadjava.test.spring.abs.svc.impl;
importorg.springframework.stereotype.Service;
@Service
publicclassGoodsServiceImpl{
publicvoidsay(){
System.out.println(111111);
}
}
四、实现抽象类
packagecom.roadjava.test.spring.abs;
importorg.springframework.stereotype.Component;
importjava.util.List;
@Component
publicclassGoodsConsumerextendsAbstractConsumer{
publicvoidconsumers(Listlist){
for(Stringstr:list){
super.handle(str);
}
}
}
五、测试:
@Test
publicvoidtest5(){
ClassPathXmlApplicationContextac=newClassPathXmlApplicationContext(“spring/beans-abs.xml”);
GoodsConsumerbean=ac.getBean(“goodsConsumer”,GoodsConsumer.class);
bean.consumers(Lists.newArrayList(“a”,“b”));
}
运行效果:

当然你也可以把在抽象类中要被注入的属性声明为protected的,这样在子类中也可以使用了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表