Spring配置详解(3)

Bean实例化三种方法

标题无参构造方法(掌握)

就是之前学的那些

工厂静态方法实例化(了解)

在itheima包下写一个类StaticFactory,写上一个静态方法getUserDao

package com.itheima.factory;

import com.itheima.dao.UserDao;
import com.itheima.dao.impl.UserDaoImpl;

public class StaticFactory {
    public static UserDao getUserDao(){
        return new UserDaoImpl();
    }
}

然后需要在Spirng容器中告诉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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


<!--id叫什么名儿都行,然后后面的class跟上全类名-->
<bean id="userDao" class="com.itheima.factory.StaticFactory" factory-method="getUserDao" >

</bean>

</beans>

其中的factory-method属性就是静态方法实例化标志,后面的方法名即对应全类名下的相关的静态方法

工厂实例方法实例化(了解)

顾名思义,就是使用去掉了static之后的普通方法来创建工厂实例
先创建一个类

package com.itheima.factory;

import com.itheima.dao.UserDao;
import com.itheima.dao.impl.UserDaoImpl;

public class dynamicFactory {
    public UserDao getUserDao(){
        return new UserDaoImpl();
    }
}

此时与上面不同,因为静态方法是在类初始化时就有的方法,它独属于类本身的成分而不是对象的成分,所以告诉Spring容器如何创建工厂实例的方法也不同。
我们的做法是,先创建一个工厂对象,即dynamicFactory的实例
再通过dynamicFatory的实例去调用这个创建实例的普通方法

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



    <!--id叫什么名儿都行,然后后面的class跟上全类名-->

    <!--先创建dynamicFactory的工厂对象-->
    <bean id="factory" class="com.itheima.factory.dynamicFactory"></bean>

    <!--再创建该对象对应的返回给我们的方法-->
    <bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean>
</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在地球迷路的怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值