//调用方法 private static IEntityService entityService=(IEntityService) BeanService.getBean("entityService");
BeanService里面的方法 private static Map<String, Object> beans; static { beans = new HashMap<String, Object>(); } public static Object getBean(String beanName) { if (beans.containsKey(beanName) && beans.get(beanName) != null) { return beans.get(beanName); } Object bean = BeanUtil.getBean(beanName); if (bean != null) { beans.put(beanName, bean); } return bean; }
BeanUtil里面的方法
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.StringUtils; public class BeanUtil { private static ClassPathXmlApplicationContext context; private static String flagInit = "0"; /** * 获取spring上下文 * * @return 上下文容器 */ private static ApplicationContext getContext() { synchronized (flagInit) { if ("0".equals(flagInit)) { if (context == null) { ClassPathXmlApplicationContext context1 = new ClassPathXmlApplicationContext("spring-config.xml", "spring-mvc.xml");//分别是Spring和MVC的配置文件 context = context1; context.start(); } flagInit = "1"; } } return context; } static { getContext(); }
/** * 获取bean * * @param beanName * @return */ public static Object getBean(String beanName) { if (StringUtils.isEmpty(beanName)) { return null; } if (getContext() == null) { return null; } return getContext().getBean(beanName); } }