解决flowable监听器中,注入spring的bean报null异常

使用@PostConstruct 注解

package com.chsu.flowable.listener;
 ​
 import com.chsu.archives.domain.ArchivesBorrowing;
 import com.chsu.archives.service.IArchivesBorrowingService;
 import org.flowable.engine.delegate.DelegateExecution;
 import org.flowable.engine.delegate.ExecutionListener;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 ​
 import javax.annotation.PostConstruct;
 import java.util.HashMap;
 import java.util.List;
 ​
 @Component
 public class UserExecutionListener implements ExecutionListener {
          
   
 ​
     @Autowired
     private IArchivesBorrowingService archivesBorrowingService;
 ​
     private static UserExecutionListener userExecutionListener;
 ​
     @PostConstruct
     public void init(){
          
   
         userExecutionListener = this;
         userExecutionListener.archivesBorrowingService = this.archivesBorrowingService;
     }
 ​
     @Override
     public void notify(DelegateExecution delegateExecution) {
          
   
         System.out.println("执行监听器");
         List<HashMap> list = userExecutionListener.archivesBorrowingService.selectVarinstByParentId(delegateExecution.getParentId());
         for(HashMap<String,String> map : list){
          
   
             if("id".equals(map.get("name"))){
          
   
                 String text = map.get("text");
                 long borringId = Long.parseLong(text);
                 ArchivesBorrowing archivesBorrowing = new ArchivesBorrowing();
                 archivesBorrowing.setId(borringId);
                 archivesBorrowing.setBorrowingApproval(2);
                 userExecutionListener.archivesBorrowingService.updateArchivesBorrowing(archivesBorrowing);
                 break;
             }
         }
     }
 }
经验分享 程序员 微信小程序 职场和发展