Spring加载配置文件和三种Bean实例化

来源:互联网 发布:批量加微信群好友软件 编辑:程序博客网 时间:2024/05/16 18:58

加载classpath

     new ClassPathXmlApplicationContext("applicationContext.xml");     加载classpath下配置文件

加载磁盘路径:

     new FileSystemXmlApplicationContext("applicationContext.xml");    加载磁盘路径下配置文件


三种Bean的实例化:

1.构造方法实例化(默认为无参数)

2.静态工厂实例化

3.实例工厂实例化


1.

<bean id="bean1" class="cn.nedu.wy.demo02.Bean1"></bean>

2.
<bean id="bean2" class="cn.nedu.wy.demo02.Bean2Factory" factory-method="getBean2"></bean>
package cn.nedu.wy.demo02;//bean2的静态工厂public class Bean2Factory {public static Bean2 getBean2(){System.out.println("静态工厂 获得bean2的方法");return new Bean2();}}

3.

<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean><bean id="bean3Factory" class="cn.nedu.wy.demo02.Bean3Factory"></bean>
package cn.nedu.wy.demo02;public class Bean3Factory {public Bean3 getBean3(){System.out.println("bean3的实例工厂");return new Bean3();}}
测试:

package cn.nedu.wy.demo02;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;//bean的实例化测试public class SpringTest02 {@Test//无参数的构造方法实例化 一般情况下选择 默认的public void demo01(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");Bean1 bean1 = (Bean1)applicationContext.getBean("bean1");System.out.println(bean1);}@Test//静态工厂实例化       加载配置文件的时候就会被执行public void demo02(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");Bean2 bean2 = (Bean2)applicationContext.getBean("bean2");System.out.println(bean2);}@Test//实例工厂实例化public void demo03(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");Bean3 bean3 = (Bean3)applicationContext.getBean("bean3");System.out.println(bean3);}}