1. 工具方法
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringContextUtil.applicationContext == null){
SpringContextUtil.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
2.示例
public IService getCommonService(Class serviceClazz) {
return (IService) SpringContextUtil.getBean(serviceClazz);
}
public PSSAutomationService getPssAutomationService() {
return SpringContextUtil.getBean(PSSAutomationService.class);
}
3. 用法
QueryWrapper<PssDetail> wrapper = new QueryWrapper<>();
wrapper.eq(PssIntelligence.FIELD_PSS_ID_KEY, pssId);
wrapper.eq(PssIntelligence.FIELD_XCVR_KEY, Pss.xcvrAll);
wrapper.in(PssIntelligence.FIELD_FACTORY_KEY, factoryList);
wrapper.in(PssIntelligence.FIELD_PROCESS_KEY, processList);
wrapper.in(PssIntelligence.FIELD_REGION_KEY, regionList);
if (!customerList.contains(Pss.all)) {
wrapper.in(PssIntelligence.FIELD_CUSTOMER_KEY, customerList);
}
List<PssDetail> pssDetails = this.commonManager.getCommonService(PSSDetailService.class).list(wrapper);
return pssDetails;