一、先用一个简单的获取bean实例的例子来了解
1、类结构如下:
2、MyTestBean.java为bean对象,实体类,代码如下:
MyTestBean
3、BeanFactoryTest代码如下:
package org.springframework.liulei; import java.io.IOException; import junit.framework.TestCase; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; /** * * @author Liulei */ public class BeanFactoryTest extends TestCase{ @SuppressWarnings("deprecation") public void testSimpleLoad() throws IOException{ System.out.println(BeanFactoryTest.class.getResource("beanFactoryTest.xml")); BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml",getClass())); MyTestBean bean = (MyTestBean) bf.getBean("myTestBean"); System.out.println(bean.getTestStr()); } }
此处以此类为主要阐述对象:
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml",getClass()));
通过XmlBeanFactory初始化的时序为:
1、new ClassPathResource:拿到resource资源,此处路径需谨慎,"/*.xml"则是指classpath路径下的文件,"*.xml"是指当前类同项目包下的xml
2、new XmlBeanFactory:通过XmlBeanDefinitionReader的loadBeanDefinitions(resource)方法返回bean定义的数目