spring的lookup-method分析

1: 用法

通过定义一个抽象类,并定义一个抽象方法,使用该抽象方法获取需要的bean。作用是实现bean的灵活性,可插拔,当指定的bean不满足我们的需求时,只需要修改配置文件中的lookup-method标签中的name属性就可以了,而不需要修改代码。

2:实例

2.1:定义用于定义bean的类

public class MyLookUpMethodCls {
}

2.2:定义抽象类

public abstract class MyLookUpMethodAbstractCls {
    public abstract MyLookUpMethodCls returnMyLookUpMethodCls();
}

2.3:配置文件

<?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">
    <bean id="myLookUpMethodCls" class="yudaosourcecode.lookupmethod.MyLookUpMethodCls"/>

    <bean id="myLookUpMethodAbstractCls" class="yudaosourcecode.lookupmethod.MyLookUpMethodAbstractCls">
        <!-- 通过方法returnMyLookUpMethodCls获取bean名称为myLookUpMethodCls的bean -->
        <lookup-method bean="myLookUpMethodCls" name="returnMyLookUpMethodCls"/>
    </bean>
</beans>

2.4:测试代码

@Test
public void testLookUpMethod() {
    ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("classpath:testlookupmethod.xml");
    MyLookUpMethodAbstractCls myLookUpMethodAbstractCls = ac.getBean("myLookUpMethodAbstractCls", MyLookUpMethodAbstractCls.class);
    // 通过调用方法的方式来获取MyLookUpMethodCls的bean
    System.out.println(myLookUpMethodAbstractCls.returnMyLookUpMethodCls());
}

运行:

yudaosourcecode.lookupmethod.MyLookUpMethodCls@6b67034

Process finished with exit code 0

方法myLookUpMethodAbstractCls.returnMyLookUpMethodCls()等同于代码ac.getBean("myLookUpMethodCls")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值