Spring:三种实例化bean的方式

来源:互联网 发布:临床试验数据核查 编辑:程序博客网 时间:2024/05/24 06:57
Spring的实例化Bean有三种方式:
  
 使用类构造器直接实例化
 使用静态工厂的方法实例化

 使用实例工厂方法实例化


  三种方式对应的配置如下

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!-- 使用类构造器直接实例化 --><bean id="userBean1" class="com.zpring.implbean.UserBean" /><!-- 使用静态工厂的方法实例化 --><bean id="userBean2" class="com.zpring.factory.BeanFactory" factory-method="UserBeanService" /><!-- 使用实例工厂方法实例化 --><bean id="factory" class="com.zpring.factory.BeanFactory" /><bean id="userBean3" factory-bean="factory" factory-method="getUserBeanService" /></beans>
<pre name="code" class="java">PersonBean 接口:
public interface PersonBean {void show();}

UserBean 类

public class UserBean implements PersonBean {@Overridepublic void show() {System.out.println("Hello Kuka");}}
BeanFactory 工程类:
package com.zpring.factory;import com.zpring.implbean.UserBean;import com.zpring.interfacebean.PersonBean;public class BeanFactory{ //使用静态工厂的方法实例化使用public static PersonBean UserBeanService(){return new UserBean();}public PersonBean getUserBeanService(){return new UserBean();}}

<!-- 使用类构造器直接实例化 --><bean id="userBean1" class="com.zpring.implbean.UserBean" />  <!--容器拿到类名称(包括路径)后就可反射出类,进而生成类的实例对象出来--><!-- 使用静态工厂的方法实例化 --><bean id="userBean2" class="com.zpring.factory.BeanFactory" factory-method="UserBeanService" /><!-- 容器放射出工厂类后,就可以执行静态方法,进而得到一个实例对象 --><!-- 使用实例工厂方法实例化 --><bean id="factory" class="com.zpring.factory.BeanFactory" /><bean id="userBean3" factory-bean="factory" factory-method="getUserBeanService" /><!-- 容器反射出一个工厂类,先得到这个工厂类对象,调用工厂中的方法生成一个指定的类实例-->


0 0
原创粉丝点击