package com.action;
public class NavigationA {
private NavigationB navigationB;
public NavigationB getNavigationB() {
return navigationB;
}
public void setNavigationB(NavigationB navigationB) {
this.navigationB = navigationB;
}
}
package com.action;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public class NavigationB {
private NavigationC navigationC;
private List<NavigationC> list;
private Properties properties;
private NavigationC[] array = new NavigationC[1];
private Map<String,NavigationC> map;
//下面是一些set get
}
package com.action;
public class NavigationC {
public void sayNavigation(){
System.out.println("===========");
}
}
<bean id="c" class="com.action.NavigationC"></bean>
<bean id="b" class="com.action.NavigationB">
<property name="list"><list></list></property>
<property name="map"><map></map></property>
<property name="properties"><props></props></property>
</bean>
<bean id="a" class="com.action.NavigationA">
<!-- 首先对NavigationB进行注入,以免其为空 -->
<property name="navigationB" ref="b"></property>
<!-- 对象图导航注入 -->
<property name="navigationB.navigationC" ref="c"></property>
<!-- 对list的注入 -->
<property name="navigationB.list[0]" ref="c"></property>
<!-- 对map的注入 -->
<property name="navigationB.map[key]" ref="c"></property>
<!-- 对property的注入 -->
<property name="navigationB.properties[0]" ref="c"></property>
<property name="navigationB.properties[1]" ref="c"></property>
<!-- 对array的注入 -->
<property name="navigationB.array[0]" ref="c"></property>
</bean>package com.action;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestNavigation {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("com/resource/navigationBeanInject.xml");
NavigationA navigationA = ac.getBean("a",NavigationA.class);
navigationA.getNavigationB().getNavigationC().sayNavigation();
navigationA.getNavigationB().getArray()[0].sayNavigation();
navigationA.getNavigationB().getList().get(0).sayNavigation();
navigationA.getNavigationB().getMap().get("key").sayNavigation();
((NavigationC)(navigationA.getNavigationB().getProperties().get("1"))).sayNavigation();
}
}
pass:写到最后发现写到,一般不用了解即可……
本文通过一个具体的Spring框架依赖注入示例,展示了如何在一个复杂的对象图中进行依赖的配置与注入,包括不同类型的集合属性(如List、Map和Properties)及数组的注入方式。
401

被折叠的 条评论
为什么被折叠?



