1: uso
Al definir una clase abstracta y un método abstracto, use el método abstracto para obtener el bean requerido. El rol es lograr la flexibilidad del bean, conectable, cuando el bean especificado no satisface nuestras necesidades, solo necesitamos modificar lookup-method
los name
atributos en la etiqueta en el archivo de configuración , sin necesidad de modificar el código.
2: Ejemplos
2.1: Definir la clase utilizada para definir el bean
public class MyLookUpMethodCls {
}
2.2: Definir clases abstractas
public abstract class MyLookUpMethodAbstractCls {
public abstract MyLookUpMethodCls returnMyLookUpMethodCls();
}
2.3: Archivo de configuración
<?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: Código de prueba
@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());
}
correr:
yudaosourcecode.lookupmethod.MyLookUpMethodCls@6b67034
Process finished with exit code 0
El método es myLookUpMethodAbstractCls.returnMyLookUpMethodCls()
equivalente al código ac.getBean("myLookUpMethodCls")
.