spring-bean實例化三種方式
阿新 • • 發佈:2018-05-19
java imp cto -i 實例 cat .get view pan
在spring中,bean的示例化有三種方式。
1、使用類的無參構造函數創建
2、使用靜態工廠方式創建
3、使用實例化工廠方式創建。
具體代碼如下
靜態工廠方式:
Bean2.java
package cn.itcast.bean; public class Bean2 { public void add(){ System.out.println("Bean2................"); } }View Code
Bean2Factory.java
package cn.itcast.bean; public classView CodeBean2Factory { //靜態方法,返回Bean2對象 public static Bean2 getBean2(){ return new Bean2(); } }
IoC方式:
user.java
package cn.itcast.ioc; public class User { public void add(){ System.out.println("add........"); } }View Code
實例化工廠方式:
Bean3.java
package cn.itcast.bean; public class Bean3 { public void add(){ System.out.println("Bean3................"); } }View Code
Bean3Factory.java
package cn.itcast.bean; public class Bean3Factory { public Bean3 getBean3(){ return new Bean3(); } }View Code
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"> <!-- ioc入門 --> <bean id="user" class="cn.itcast.ioc.User"></bean> <!-- 使用靜態工廠類創建對象 --> <bean id="Bean2" class="cn.itcast.bean.Bean2Factory" factory-method="getBean2"></bean> <!-- 使用實例工廠創建對象 --> <bean id="Bean3Factory" class="cn.itcast.bean.Bean3Factory"></bean> <bean id="Bean3" factory-bean="Bean3Factory" factory-method="getBean3"></bean> </beans>
測試類:
package cn.itcast.ioc; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.bean.Bean2; import cn.itcast.bean.Bean3; public class TestIOC { @Test public void testUser() { // 1 加載spring配置文件。根據創建對象 ApplicationContext context = new ClassPathXmlApplicationContext( "bean1.xml"); //2 得到配置創建的文件 ioc User user = (User)context.getBean("user") ; System.out.println(user); user.add(); //使用靜態工廠類創建對象 Bean2 bean2 =(Bean2)context.getBean("Bean2"); System.out.println(bean2); bean2.add() ; // 使用實例工廠創建對象 Bean3 bean3 = (Bean3) context.getBean("Bean3"); System.out.println(bean3); bean3.add(); } }View Code
運行測試類,結果顯示
spring-bean實例化三種方式