【Spring Boot】util静态工具类中注入service

util工具类使用注解

使用@Component注解

@Component
public class LogQueryUtils {
    
}

注入service

此时使用 @Autowired注解引入的service为非静态变量,无法在静态方法中使用

@Component
public class LogQueryUtils {

    @Autowired
    private EhcacheService ehcacheService;
    
}

初始化静态service

使用@PostConstruct, 在工具类初始化完成后调用setDataSource()方法,为静态service变量赋值

@Component
public class LogQueryUtils {

    @Autowired
    private EhcacheService ehcacheService;
    
    private static EhcacheService service;
    
    @PostConstruct
    public void init(){
        if(service == null){
            setDataSource(ehcacheService);
        }
    }
    
    private synchronized static void setDataSource(EhcacheService ehcacheService) {
        service = ehcacheService;
    }
    
}

使用

在静态方法中就可以直接使用service进行方法调用了

public static void test() {
        
        Map serviceCodeMap = service.loadServiceCodeMap();
        
        //your code
    }

你可能感兴趣的:(Spring,Boot,spring,boot,util,静态工具方法)