Spring ioc注入 子类父类问题

问题描述

现有几个类关系如下classA{}classAAextendsA{}classABextendsA{}classAAAextendsAA{}classABAextendsAB{}classFather{publicvoidsetValue(AAaa){}}classSonextendsFather{publicvoidsetValue(Aa){}}

<beanid="son"class="Son"><propertyname="value"ref="aaa"/></bean>

这种情况下会走父类的setValue方法我在子类里面已经重新定义了setValue方法虽然不算重写但是AA是继承A的我的bean是子类他为什么还是会走父类的setValue方法呢如果我注入的属性是AA的派生类就会跑到父类的set方法如果是AB的派生类才会走子类的setValue(Aa)方法我想让他都走子类的set方法而且Spring这注入让人不懂求解

解决方案

解决方案二:
感觉是Spring跑去父类里面找同名的方法,找到类型范围更适合注入那个属性的因为A跟AAA隔了两层而AA跟AAA隔一层是不是这样呢若Father还有一个父类有setValue(AAAaaa)方法注入的是AAA他就会跑到这个set方法里面注入了吧
解决方案三:
现在好像连传AB都不进子类set方法了直接报错了走的都是父类

时间: 2024-10-06 13:28:35

Spring ioc注入 子类父类问题的相关文章

Spring 依赖注入方式详解

阅读目录 1.Set注入 2.构造器注入 3.静态工厂的方法注入 4.实例工厂的方法注入 5.总结    平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我

spring注入-spring 注入时 子类父类注入 后子类属性为空

问题描述 spring 注入时 子类父类注入 后子类属性为空 有这样的结构设计类: 父类: package com.company.name.parent; public class CustomerInfoBO{ private XXXDao xXXDao; //xXXDao setter,getter } 子类: package com.company.name.children; public class CustomerInfoBO extends com.company.name.pa

spring 依赖注入的困惑 关于子类和父类

问题描述 spring 依赖注入的困惑 关于子类和父类 有一个Son类 package cn.extend; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; public class Son extends Father { } 还有一个父类Father

【SSH系列】深入浅出spring IOC中三种依赖注入方式

spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控制什么?依赖注入和控制反转是一样的概念吗?接触新的知识,小编的脑袋中全是大大的问号,不过没有关系,今天这篇博文,小编主要来简单的介绍一下在spring IOC中依赖注入的方法. 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性.我们可以从以下几个方面理解: a.参与者都

spring IOC容器实现探讨

   spring IOC容器的实现,一开始我被复杂的接口和类所掩埋,看不清整体的思路和设计,踟蹰于代码丛林中,摸不清前进的方向.一开始我就决定只研读以xml文件做配置文件的XmlFactoryBean的具体实现为主要目标,渐渐地有了点感觉,用UML把spring中的bean工厂体系展现出来之后就更清晰了,让你不得不感叹设计的精巧和复杂.本文只是我个人对spring IOC实现的理解,如有错误,请不吝赐教,谢谢.     首先,需要理解的是spring容器中bean的生命周期,<spring i

Spring IoC — 基于XML的配置

原文:Spring IoC - 基于XML的配置 1.属性注入 注意点: 1)如果类中显示定义了一个带参的构造函数,则一定还要显示提供一个无参构造函数,否则使用属性注入时将抛出异常. 2)JavaBean关于属性命名的特殊规范.Spring只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不做要求.如maxSpeed对应setMaxSpeed(),brand对应setBrand(). 所以<property>元素的属性变量名应满足:xxx的属性对应setXxx

深入Spring IOC源码之ResourceLoader

在<深入Spring IOC源码之Resource>中已经详细介绍了Spring中Resource的抽象,Resource接口有很多实现类,我们当然可以使用各自的构造函数创建符合需求的Resource实例,然而Spring提供了ResourceLoader接口用于实现不同的Resource加载策略,即将不同Resource实例的创建交给ResourceLoader来计算. public interface ResourceLoader {     //classpath     String 

谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解. 一.分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinniansh

《Spring攻略(第2版)》——1.2 配置Spring IoC容器中的Bean

1.2 配置Spring IoC容器中的Bean 1.2.1 问题 Spring提供了一个强大的IoC容器来管理组成应用的bean.为了利用容器服务,你必须配置运行于Spring IoC容器中的Bean. 1.2.2 解决方案 你可以通过XML文件.属性文件.注释甚至API来配置Spring IoC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能(例如控