2.springioc实例化bean的三个方法
1.构造器
也就是在上一篇讲的那个例子,调用默认的无参构造函数
2.静态工厂方法
1)创建需要执行的方法的类
public class HelloWorld { public HelloWorld(){ System.out.println("aaaa"); } public void hello(){ System.out.println("hello world"); } }
2)创建静态工厂
public class HelloWorldFactory { public static HelloWorld getInstance(){ return new HelloWorld(); } }
3)编写applicationContext.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 在这个配置中,spring容器要用默认的构造函数为HelloWorld创建对象 --> <bean id="helloWorld" class="HelloWorld"></bean> <!-- 采用静态工厂方法创建对象 factory-method为工厂方法 --> <bean id="helloWorld2" class="HelloWorldFactory" factory-method="getInstance"></bean> </beans>
4)启动容器,创建对象,调用方法
@Test public void test(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWorld world = (HelloWorld)context.getBean("helloWorld2"); world.hello(); }
3.实例工厂方法(略)
本人倡导的讲解方式:代码示例[学以致用,不仅要知道理论,还要知道理论怎么付诸实践],
文字讲解[不仅知道要怎么用,还要知道是怎么回事],
画图讲解[有图有真相,用图的形式将代码嵌入到理论中,整体理解]