因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层。
但因我们写的工具类不属于controller层,所以当所写接口需要调用服务层是,常常会为NULL。
代码如下:
//关于工具类调用服务层的方法
@Autowired //注入service层
private VTcTbdwdmService vTcTbdwdmService; //在spring初始化之前,初始化一个静态类
private static MulConditionUtils mulConditionUtils; //定义服务层的方法
public void setVTcTbdwdmService(VTcTbdwdmService vTcTbdwdmService) {
this.vTcTbdwdmService=vTcTbdwdmService;
} //通过@PostConstruct方法实现Bean初始化之前和销毁之前的自定义操作
@PostConstruct
public void init() {
mulConditionUtils=this;
mulConditionUtils.vTcTbdwdmService=this.vTcTbdwdmService; // 初使化时将已静态化的vTcTbdwdmService实例化
}
解释:
关键点1::private static MulConditionUtils mulConditionUtils;静态初使化 一个工具类 这样是为了在spring初使化之前
关键点2:@PostConstruct;通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
具体调用服务层时:
String allTbdwdm = mulConditionUtils.vTcTbdwdmService.getSonTbdwdm(newTbdw);