当前位置:首页 > 开发 > 编程语言 > Spring > 正文

Spring注入有继承关系的类(1)

发表于: 2013-03-16   作者:bijian1013   来源:转载   浏览:
摘要: 一个类一个类的注入 1.AClass类 package com.bijian.spring.test2; public class AClass { String a; String b; public String getA() { return a; } public void setA(Strin
一个类一个类的注入
1.AClass类
package com.bijian.spring.test2;

public class AClass {

    String a;
    String b;
   
    public String getA() {
        return a;
    }
    public void setA(String a) {
        this.a = a;
    }
    public String getB() {
        return b;
    }
    public void setB(String b) {
        this.b = b;
    }
}
 
2.BClass类
package com.bijian.spring.test2;

public class BClass extends AClass {

    String c;

    public String getC() {
        return c;
    }

    public void setC(String c) {
        this.c = c;
    }

    String fn() {
        return a + b + c;
    }
}
 
3.AClass类配置文件aclass2.xml
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
  <bean id="bean1" class="com.bijian.spring.test2.AClass">
      <property name="a">
          <value>1</value>
      </property>
      <property name="b">
          <value>2</value>
      </property>
  </bean>
</beans>
 
4.BClass类配置文件bclass2.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"  
  "http://www.springframework.org/dtd/spring-beans.dtd">  
   
<beans>  
  <bean id="bean2" class="com.bijian.spring.test2.BClass">
      <property name="c">
          <value>3</value>
     </property>
  </bean>
</beans>
 
5.应用测试类Test.java
package com.bijian.spring.test2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args) {
       
        ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"aclass2.xml","bclass2.xml"});
       
        //得到子类,结果是:nullnull3
        BClass bclass = (BClass)ac.getBean("bean2");
        String res = bclass.fn();
        System.out.println(res);
    }
}
      
        由结果不难看出,子类没有拥有 注入给父类的属性值。
        如果我们想要子类拥有注入给父类的属性值,该怎么办呢?可以通过修改配置文件和应用测试类来达到,如下所示:
1.AClass类
package com.bijian.spring.test3;

public class AClass {

    String a;
    String b;
   
    public String getA() {
        return a;
    }
    public void setA(String a) {
        this.a = a;
    }
    public String getB() {
        return b;
    }
    public void setB(String b) {
        this.b = b;
    }
}
 
2.BClass类
package com.bijian.spring.test3;

public class BClass extends AClass {

    String c;

    public String getC() {
        return c;
    }

    public void setC(String c) {
        this.c = c;
    }

    String fn() {
        return a + b + c;
    }
}
 
3.配置一个父类的配置文件parent3.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"  
  "http://www.springframework.org/dtd/spring-beans.dtd">  

<beans>  
  <bean id="abstractbean" abstract="true">
      <property name="a">
          <value>1</value>
      </property>
      <property name="b">
          <value>2</value>
      </property>
  </bean>
</beans>
 
4.AClass类配置文件aclass3.xml
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
  <bean id="bean1" class="com.bijian.spring.test3.AClass" parent="abstractbean"/>  
</beans>
 
5.BClass类配置文件bclass3.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"  
  "http://www.springframework.org/dtd/spring-beans.dtd">  

<beans>
  <bean id="bean2" class="com.bijian.spring.test3.BClass" parent="abstractbean">
      <property name="c">
          <value>3</value>
     </property>
  </bean>
</beans>
 
6.应用测试类Test.java
package com.bijian.spring.test3;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args) {
       
        ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"parent3.xml","aclass3.xml","bclass3.xml"});
       
        //得到子类,结果是:123
        BClass bclass = (BClass)ac.getBean("bean2");
        String res = bclass.fn();
        System.out.println(res);
    }
}
 

Spring注入有继承关系的类(1)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这
概要: ‘ 继承Bean配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean
Activiti使用 Vaadin作为前端开发框架,Spring作为后台的支撑环境。 下图是Vaadin、Activiti和Sprin
Object类:在.Net中所有类型的根类型 DispatcherObject类:WPF 中的大多数对象是从 DispatcherObjec
在Cocoa开发中是必要的,至于其它框架(如:Core Data、Sync Services、Address Book、Preference Pan
Lucene的简单分为两个部分,一是建立索引 IndexWriter,二是搜索内容 Searcher。 一、IndexWriter部
原文出处:http://blog.csdn.net/duanyipeng/article/details/7110324 Cocoa框架类之间继承关系是本
Cocoa框架包含两个核心框架:Foundation和Application Kit (UIKit) 框架。 在Cocoa开发中是必要的,至
欢迎各位童鞋转载,转载请注明出处:http://blog.csdn.net/song_hui_xiang 作者新浪微博:http://we
一、父类与子类 1.父类与子类的相互转换 派生类的对象可以赋给基类,反之不行 基类的指针可以指向派
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号