Resource resource = new FileSystemResource(“beans.xml”);
BeanFactory factory = new XmlBeanFactory(resource);
2)
ClassPathResource resource = new ClassPathResource(“beans.xml”);
BeanFactory factory = new XmlBeanFactory(resource);
当需要从多个文件中加载一个BeanFactory实例时候,可以像如下使用:
ApplicationContext ctx= new ClassPathXmlApplicationContext(new String[]{“beans.xml”,”application.xml”});
BeanFactory factory =ctx;
而Bean Factory通过Bean definition reader从多个文件中读取Bean定义,这样的话,我们可以这么处理,即组成基于XML配置元数据可以做如下配置:
要求在完成bean定义之前导入所有的XML文件。
在BeanFactory中,与之关联最重要的类是:BeanWrapper。
Object object = Class.forName(“com.spring.service.impl.PersonServiceBean”).newInstance();
BeanWrapper beanWrapper = new BeanWrapperImpl(object);
beanWrapper.setPropertyValue(“name”, “Jamson”);通过BeanWrapper,我们可以无需在编码时就指定JavaBean的实现类和属性值,通过在配置文件加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系).
二 ApplicationContext
接口ApplicationContext来自于org.springframework.context.ApplicationContext,继承BeanFactory,除了支持BeanFactory的功能外,还能支持企业应用的其它功能,如:事务管理,国际化支持,以及AOP集成等等。通过类ApplicationContextAware类实现。比较常用的子接口为:AbstactApplicationContext。
例如:
ApplicationContext ctx = new ClassPathXmlApplicationContext(“application.xml”);
对于多个XML配置文件来读取一个ApplicationContext实例时,可以这样使用:
1)ApplicationContext ctx= new ClassPathXmlApplicationContext(new String[]{“beans.xml”