You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.6 KiB
Java

package com.manage.config;
import com.manage.interfaces.webservice.PowerWebService;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* @author by CLP
* @Classname BeanConfig
* @Description
* @Date 2020/9/8 15:28
*/
@Component
public class WebServiceCxf implements InitializingBean, ApplicationContextAware {
private static Map<String, PowerWebService> queryServiceImplMap = new HashMap<>();
private ApplicationContext applicationContext;
public static PowerWebService createQueryService(String type) {
PowerWebService powerWebService = queryServiceImplMap.get(type);
if (powerWebService == null) {
return queryServiceImplMap.get("PowerServiceImpl");
}
return powerWebService;
}
@Override
public void afterPropertiesSet() throws Exception {
Map<String, PowerWebService> beanMap = applicationContext.getBeansOfType(PowerWebService.class);
//遍历该接口的所有实现将其放入map中
for (PowerWebService serviceImpl : beanMap.values()) {
queryServiceImplMap.put(serviceImpl.getClass().getSimpleName(), serviceImpl);
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}