Spring依赖注入的接口为null

昨天碰到一个问题,做大量Excel导入时,Spring依赖注入接口总是null。

因为之前使用的时候都是可以的,所以我就各种尝试,我的类进行实现接口,进行组件定义等等都不行。今早重新看看依赖注入的定义,组件之间依赖关系由容器在运行期决定,由容器动态的将某个依赖关系注入到组件中。

上面的重点有1、需要注入的地方一定要定义成组件;2、注入的接口需要实现,用注解@Autowired注入;3、就是我犯的错误!调用这个服务用new,而不是注入方式调用;一、下面是服务调用入口代码:

@Service("readService")
public class ReadServiceImpl implements ReadService {
@Autowired
CountBeniftService service;
@Autowired
Excel2007ReaderService readerService; //通过注入接口,调用组件

@Override
public Map<String, String> read(String path, String fileName)  {
Map<String, String> map = new HashMap<String,String>();
try{
readerService.readOneSheet(path);
map.put("result", "读取文件并保存成功");
}catch(Exception e){
map.put("result", "服务调用后程序运行出错,请联系开发者查找问题");
}
return map;
}


}

二、readerService是我的服务入口,如果这里用new 来实例化,服务内注入的接口不可用。因为没有将实咧交给Spring来控制;

Excel2007ReaderService 就是我的服务具体实现,而且内部还可以继续注入JPA接口,操作数据库,

@Component
public class Excel2007ReaderService extends DefaultHandler { 
@Autowired
private UddiDBService service;
//共享字符串表  
    private SharedStringsTable sst;
    //上一次的内容
    private String lastContents;  
    private boolean nextIsString;  


}

三、看我的服务内部就可以注入啦!给大家看下返回结果:


给大家温习下ioC和DI,有用请点个赞~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值