1.被调用的B类
package test10month.test1011;
public interface Rod {
void add();
}
package test10month.test1011;
public class RealizationRod implements Rod {
@Override
public void add() {
System.out.println("Rod.......");
}
}
2.调用方法的A类
package test10month.test1011;
public class CallRod {
private RealizationRod realizationRod;
public void setRealizationRod(RealizationRod realizationRod) {
this.realizationRod = realizationRod;
}
public void aVoid() {
realizationRod.add();
}
}
3.xml
<?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 name="callRod" class="test10month.test1011.CallRod">
<!--级联赋值-->
<!--内部嵌套另一个对象,这里指的是 ref="realizationRod"-->
<property name="realizationRod" ref="realizationRod"/>
</bean>
<bean name="realizationRod" class="test10month.test1011.RealizationRod"/>
</beans>
4.测试类
package test;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import test10month.test1011.CallRod;
public class ClassTest {
@Test
public void test() {
var context = new ClassPathXmlApplicationContext("Spring config-2.xml");
var contextBean = context.getBean("callRod", CallRod.class);
contextBean.aVoid();
}
}