spring-bean实例化三种方式
Posted zyfadmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-bean实例化三种方式相关的知识,希望对你有一定的参考价值。
在spring中,bean的示例化有三种方式。
1、使用类的无参构造函数创建
2、使用静态工厂方式创建
3、使用实例化工厂方式创建。
具体代码如下
静态工厂方式:
Bean2.java
package cn.itcast.bean; public class Bean2 { public void add(){ System.out.println("Bean2................"); } }
Bean2Factory.java
package cn.itcast.bean; public class Bean2Factory { //静态方法,返回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........"); } }
实例化工厂方式:
Bean3.java
package cn.itcast.bean; public class Bean3 { public void add(){ System.out.println("Bean3................"); } }
Bean3Factory.java
package cn.itcast.bean; public class Bean3Factory { public Bean3 getBean3(){ return new Bean3(); } }
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(); } }
运行测试类,结果显示
以上是关于spring-bean实例化三种方式的主要内容,如果未能解决你的问题,请参考以下文章