(一)构造器实例化Bean
1. Bean1.java
package com.inspur.ioc; public class Bean1 { }
2.Beans1.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.xsd"> <bean id="bean1" class="com.inspur.ioc.Bean1"></bean> </beans>
3.InstanceTest.java
package com.inspur.ioc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //1.定义配置文件路径 String xmlPath = "com/inspur/ioc/Beans1.xml"; //2.ApplicationContext 在加载文件时,对bean实例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); Bean1 bean1 = (Bean1) applicationContext.getBean("bean1"); System.out.println(bean1); } }
( 二)静态工厂实例化Bean
1.Bean2.java
package com.inspur.static_factory; public class Bean2 { }
2.InstanceTest2.java
package com.inspur.static_factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.inspur.ioc.Bean1; public class InstanceTest2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //1.定义配置文件路径 String xmlPath = "com/inspur/static_factory/Beans2.xml"; //2.ApplicationContext 在加载文件时,对bean实例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); Bean2 bean2 = (Bean2) applicationContext.getBean("bean2"); System.out.println(bean2); } }
3.MyBean2Factory.java
package com.inspur.static_factory; public class MyBean2Factory { //使用自己的工厂创建beans实例 public static Bean2 creatBean(){ return new Bean2(); } }
4.beans2.xml:注意配置时class=“里面是工厂的包装类” ,另外需要加factory-method=“是MyBean2Factory里面的静态方法”
<?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.xsd"> <bean id="bean2" class="com.inspur.static_factory.MyBean2Factory" factory-method="creatBean"></bean> </beans>
(三)实例工厂创建Bean实例
1.Bean3.java
package com.inspur.factory; public class Bean3 { }
2.InstanceTest.java
package com.inspur.factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.inspur.scope.Bean4; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String xmlPath = "com/inspur/factory/beans3.xml"; //2.ApplicationContext 在加载文件时,对bean实例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); Bean3 bean3 = (Bean3) applicationContext.getBean("bean3"); System.out.println(bean3); } }
3.MyBean3Factory.java
package com.inspur.factory; public class MyBean3Factory { public MyBean3Factory(){ System.out.println("beans工厂实例化中"); } //创建beans的实例方法 public Bean3 createBean(){ return new Bean3(); } }
4.beans3.xml:注意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.xsd"> <bean id="MyBean3Factory" class="com.inspur.factory.MyBean3Factory"></bean> <bean id="bean3" factory-bean="MyBean3Factory" factory-method="createBean"></bean> </beans>