当前位置: 代码迷 >> Java Web开发 >> 小白求问 spring有继承关系的类生成对象的有关问题
  详细解决方案

小白求问 spring有继承关系的类生成对象的有关问题

热度:235   发布时间:2016-04-16 21:49:02.0
小白求问 spring有继承关系的类生成对象的问题
小小问题 先谢过大神了
A类就一个属性name
public class A {
private String name ;

public  String getName() {
return name;
}

public  void setName(String name) {
this.name = name;
}

}
B类继承A
public class B extends A{ }
 在applicationContex.xml中 给A的name设定值AA 并设置B的parent为A
           <bean id="a" class="com.xxxy.ioc.A">
<property name="name" value="AA"></property>
</bean>
<bean id="b" class="com.xxxy.ioc.B" parent="a"></bean>
测试的时候
          @Test    生成b 调用b.getName() 为什么会输出AA
public void fun(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
B b =  (B) applicationContext.getBean("b");
System.out.println(b.getName());
输出 “AA”
}
 生成b 调用b.getName() 为什么会输出AA

这里spring生成的对象和我们自己写的java代码有什么不同
A a = new A();
a.setName("AA");
B b = new B();
b.getName(); 这肯定是没有值的
这完全是两个不相关的两个对象 为什么在spring中 却会有值

------解决思路----------------------
spring 的这种继承,是继承配置,也就是,不是你想的那种java继承
     	<bean id="a" class="com.xxxy.ioc.A">
<property name="name" value="AA"></property>
</bean>
<bean id="b" class="com.xxxy.ioc.B" parent="a">
<!-- 继承a的配置 -->
<property name="name" value="AA"></property>
</bean>


  相关解决方案