spring-01 装配Bean 基于XML

实例化方式

  1. 3种bean实例化方式:默认构造、静态工厂、实例工厂

默认构造

<bean id="" class="">  必须提供默认构造

    1.  

静态工厂

  1. 常用与spring整合其他框架(工具)
  2. 静态工厂:用于生成实例对象,所有的方法必须是static

<bean id=""  class="工厂全限定类名"  factory-method="静态方法">

工厂

public class MyBeanFactory {

  

   /**

    * 创建实例

    * @return

    */

   public static UserService createService(){

      return new UserServiceImpl();

   }

}

spring配置

    <!-- 将静态工厂创建的实例交予spring

        class 确定静态工厂全限定类名

        factory-method 确定静态方法名

    -->

    <bean id="userServiceId" class="com.itheima.c_inject.b_static_factory.MyBeanFactory" factory-method="createService"></bean>

实例工厂

  1. 实例工厂:必须先有工厂实例对象,通过实例对象创建对象。提供所有的方法都是“非静态”的。

工厂

/**

 * 实例工厂,所有方法非静态

 *

 */

public class MyBeanFactory {

  

   /**

    * 创建实例

    * @return

    */

   public UserService createService(){

      return new UserServiceImpl();

   }

 

}

spring配置

    <!-- 创建工厂实例 -->

    <bean id="myBeanFactoryId" class="com.itheima.c_inject.c_factory.MyBeanFactory"></bean>

    <!-- 获得userservice

        * factory-bean 确定工厂实例

        * factory-method 确定普通方法

    -->

    <bean id="userServiceId" factory-bean="myBeanFactoryId" factory-method="createService"></bean>

   

猜你喜欢

转载自blog.csdn.net/qq_35187942/article/details/87944188