Spring的三种实例化Bean的方式
2011-10-11 15:15
429 查看
1.使用类构造器实例化(调用默认构造函数来完成实例化)
2.使用静态工厂方法实例化
这里的class是工厂类,factory-method指定的是静态工厂方法,就是说通过工厂类PersonServiceBeanFactory的createPersonServiceBean方法创建personService这个bean实例。是什么bean呢?是由创建方法的返回类型决定
3.使用实例工厂方法实例化:
这方法跟第2的静态工厂方法不同之处是,创建方法没有static关键字。这时候必须要先实例化工厂CC霜是什么PersonServiceBeanFactory,
通过这代码实例化:,
实例化了工厂之后呢,再使用工厂bean personServiceFactory调用它里面这个专门用于创建bean的工厂方法,来创建bean
Spring实例化bean就有这三种实现方式,具体使用哪一种可以根据自己的需求来定,当然绝大部分,应该说90%多使用第一种实例化方案,
代码如下:
PersonService.java
PersonServiceBeanFactory.java
SpringTest.java
beans.xml
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"></bean>
2.使用静态工厂方法实例化
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBeanFactory" factory-method = "createPersonServiceBean"/>
这里的class是工厂类,factory-method指定的是静态工厂方法,就是说通过工厂类PersonServiceBeanFactory的createPersonServiceBean方法创建personService这个bean实例。是什么bean呢?是由创建方法的返回类型决定
public class PersonServiceBeanFactory{ public static PersonServiceBean createPersonServiceBean(){ return new PersonServiceBean(); } }
3.使用实例工厂方法实例化:
<bean id="personServiceFactory" class="cn.itcast.service.impl.PersonServiceBeanFactory"/> <bean id="personService3" factory-bean="personServiceFactory" factory-method="createPersonServiceBean2"/>
public class PersonServiceBeanFactory { public PersonServiceBean createPersonServiceBean2(){ return new PersonServiceBean(); } }
这方法跟第2的静态工厂方法不同之处是,创建方法没有static关键字。这时候必须要先实例化工厂CC霜是什么PersonServiceBeanFactory,
通过这代码实例化:,
实例化了工厂之后呢,再使用工厂bean personServiceFactory调用它里面这个专门用于创建bean的工厂方法,来创建bean
Spring实例化bean就有这三种实现方式,具体使用哪一种可以根据自己的需求来定,当然绝大部分,应该说90%多使用第一种实例化方案,
代码如下:
PersonService.java
package cn.itcast.service; public interface PersonService { public void save(); } PersonServiceBean.java package cn.itcast.service.impl; import cn.itcast.service.PersonService; public class PersonServiceBean implements PersonService { public void save(){ System.out.println("我是save()方法"); } }
PersonServiceBeanFactory.java
package cn.itcast.service.impl; public class PersonServiceBeanFactory { //静态工厂方法创建bean public static PersonServiceBean createPersonServiceBean(){ return new PersonServiceBean(); } //使用实例工厂方法创建bean, 这里没有了static关键字 public PersonServiceBean createPersonServiceBean2(){ return new PersonServiceBean(); } }
SpringTest.java
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.service.PersonService; public class SpringTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void instanceSpring(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); //PersonService personService = (PersonService)ctx.getBean("personService1"); //PersonService personService = (PersonService)ctx.getBean("personService2"); PersonService personService = (PersonService)ctx.getBean("personService3"); personService.save(); } }
beans.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"> <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"></bean> <!-- 使用静态工厂方法创建bean --> <bean id="personService2" class="cn.itcast.service.impl.PersonServiceBeanFactory" factory-method="createPersonServiceBean"/> <!-- 使用实例工厂方法创建bean --> <bean id="personServiceFactory" class="cn.itcast.service.impl.PersonServiceBeanFactory"/> <!--将工厂类交给Spring管理,--> <bean id="personService3" factory-bean="personServiceFactory" factory-method="createPersonServiceBean2"/> </beans>
相关文章推荐
- spring基础----->实例化bean的三种方式
- Spring的三种实例化Bean的方式
- spring的三种实例化bean的方式
- Spring中bean的三种实例化方式的简单实例
- Spring的三种实例化Bean的方式
- spring实例化bean的三种方式
- spring中三种实例化bean的方式
- Spring实例化Bean的三种方式及Bean的类型
- Spring系列:第三篇-Spring容器三种实例化bean的方式以及Bean的作用域
- Spring学习笔记——Spring实例化Bean的三种方式
- spring2.5.6学习笔记五:Spring的三种实例化Bean的方式
- spring中三种实例化bean的方式
- Spring实例化Bean的三种方式
- Spring学习笔记(二)Spring的三种实例化Bean的方式
- (2)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期
- Spring的三种实例化Bean的方式
- (转)Spring的三种实例化Bean的方式
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- Spring实例化Bean的三种方式及Bean的类型(activiti实战)
- Spring的三种实例化Bean的方式