因为平时在调用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);