Spring三种创建Bean对象的方法

开发工具与关键技术:eclipse

作者:Mr_恺

撰写时间:2021.12.28

我们用eclipse创建一个java项目,把那些包创建好:

dao包下的接口和实现类:

   

service包下的接口和实现类:

 

 

把Spring的jar包引进来:

创建一个xml文件并命名为bean.xml,导入Spring的约束

<!-- 导入spring的约束springIoC约束:beans-->

<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">

 

  • bean标签:

  作用:用于让spring帮我们读取配置后创建对象

  属性:

  id:对象的唯一标识

  Class:要创建对象的全限定类名

  factory-method:指定创建bean对象方法。该方法可以是静态时,也可以不是。

  factory-bean:指定创建bean对象的工厂beanid

 

bean对象的三种创建方式:

   第一种:通过调用构造函数来创建bean对象。   常用

在默认情况下,当我们在spring的配置文件中写了一个bean标签,并提供了Class属性spring就会调用默认构造函数创建对象。

  • 如果没有默认构造函数,则对象创建失败。

 <!-- 默认构造函数创建 -->

<bean id="accountService"class="com.itheima.service.impl.AccountServiceImpl" scope="singleton" init-method="init" destroy-method="destroy">

</bean>

 

第二种:通过静态工厂创建bean对象。

     工厂类中提供一个静态方法可以返回要用的bean对象

要创建一个类模拟一个静态工厂:

<!-- 静态工厂创建 -->

<bean id="staticAccountService"class="com.itheima.factory.StaticBeanFactory" factory-method="getBean">

</bean>

要创建一个类模拟一个实例工厂:

 

第三种: 通过实例工厂创建bean对象

工厂类中提供普通方法可以返回要用的bean对象

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

     <bean id="fff" class="com.itheima.factory.InstanceBeanFactory"></bean>

<bean id="dfd" factory-bean="fff" factory-method="getBean"></bean>

 

创建一个类模拟表现层运行,根据beanid获取对象:

运行结果: