知识大全 简单模拟spring的容器管理bean
Posted 知
篇首语:吾生也有涯,而知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 简单模拟spring的容器管理bean相关的知识,希望对你有一定的参考价值。
package spring;import java io IOException;import URL;import java util ArrayList;import java util HashMap;import java util List;import java util Map;import jdom Document;import jdom Element;import jdom JDOMException;import jdom input SAXBuilder;import jdom xpath XPath;import vo BeanDefinition;/** * 简单模拟spring的ClassPathXmlApplicationContext spring容器管理bean * * @author zdw * */@SuppressWarnings( unchecked )public class MyApplicationContext private List<BeanDefinition> list = new ArrayList<BeanDefinition>(); private Map<String Object> sigletons = new HashMap<String Object>(); public MyApplicationContext(String fileName) this readXML(fileName); try instanceBeans(); catch (Exception e) e printStackTrace(); /** * 实例化所有bean * * @throws InstantiationException * @throws IllegalAccessException * @throws ClassNotFoundException */ private void instanceBeans() throws InstantiationException IllegalAccessException ClassNotFoundException for (BeanDefinition bean : list) if (null != bean getClassName() && bean getClassName() length() > ) sigletons put(bean getId() Class forName(bean getClassName()) newInstance()); /** * 读取xml配置 * * @param fileName */ public void readXML(String fileName) SAXBuilder builder = new SAXBuilder(); URL url = this getClass() getClassLoader() getResource(fileName); try Document doc = builder build(url); XPath xpath = XPath newInstance( //ns:beans/ns:bean ); xpath addNamespace( ns ); List<Element> beans = xpath selectNodes(doc); for (Element bean : beans) String id = bean getAttributeValue( id ); String className = bean getAttributeValue( class ); BeanDefinition beanDefinition = new BeanDefinition(id className); list add(beanDefinition); catch (JDOMException e) e printStackTrace(); catch (IOException e) e printStackTrace(); /** * 得到指定id的bean * * @param id * @return */ public Object getBean(String id) return sigletons get(id);测试
@Test public void testMyUserService() MyApplicationContext ctx = new MyApplicationContext( beans xml ); UserService us = (UserService) ctx getBean( userService ); us print(); cha138/Article/program/Java/ky/201311/28759相关参考
Spring依赖其IOC特征轻松的管理著一堆非常有价值的bean这些bean在spring容器中的依赖关系都已注入好所以相互调用非常方便 但既然是有价值的bean
知识大全 使用SpringtUtil获取Spring IoC容器中的Bean
使用SpringtUtil获取SpringIoC容器中的Bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
Spring创建Bean的过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! beans包提供了
详解Spring中bean的scope 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何使用s
Spring获取Bean的几种方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法一在初始化
Spring中bean的基本xml配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在spri
知识大全 Spring强制向servlet中注入bean的方法
Spring强制向servlet中注入bean的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java中如何获取Spring中配置的bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一
知识大全 解析Java中如何获取Spring中配置的bean
解析Java中如何获取Spring中配置的bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本
在spring中提供了三种可供选择的注入方式 提供set/get方法 构造函数 工厂方法的运用 大家对这三种方法的选择都是仁者见仁智者见智一下我是我支构造函数的理由 保证一些重要的属性在