问题描述:
想根据配置文件,通过反射调用不同的工具类,执行发现,工具类里面的@Resource引入为空
原因:
反射脱离了spring容器的管理,导致无法通过@Resource注入bean
解决方法:
public class ObsUtil {
@Resource
private ObsConfiguration obsConfiguration;
// 维护一个本类的静态变量
public static ObsUtil obsUtil;
//初始化的时候,将本类中的ObsUtil赋值给静态的本类变量
@PostConstruct
public void init() {
obsUtil = this;
}
public void deleteFileByName(String fileName) throws IOException {
//采用obsUtil.obsConfiguration.obsAccessKeyId方式进行
ObsClient obsClient = new ObsClient(obsUtil.obsConfiguration.obsAccessKeyId, obsUtil.obsConfiguration.obsAccessKeySecret, obsUtil.obsConfiguration.obsEndpoint);
obsClient.deleteObject(obsUtil.obsConfiguration.obsBucketName,fileName);
obsClient.close();
}
}