SSM(Spring)中,在工具类中调用服务层的方法


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