0 0

当父类的可见性小于父类时,采用spring注入时的一些问题0

子类为:
@Component("children")
class Children extends Father{
	Children2 children2;
	
	@Resource(name="children2")
	public void setChildren2(Children2 children2) {
		System.out.println("在Children类中注入。。。");
		this.children2 = children2;
	}
}

父类为:
class Father {
	private Children2 children2 ;
	
	@Resource(name = "children2")
	public void setChildren(Children2 children2) {
		System.out.println("在Father类中注入");
		this.children2 = children2;
	}
	
}

还有一个空类children2,
@Component("children2")
class Children2{
}

测试代码为
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

当父类的可见性小于子类的时候(如父类为默认class,子类为public class)
打印结果为:
在Children类中注入。。。
否则,打印结果为:
在Father类中注入。。。
在Children类中注入。。。
请问这是怎么回事?
2014年10月16日 23:18
目前还没有答案

相关推荐

    父类引用指向子类对象

    这种现象发生时,父类类型的引用被用来创建和操作子类的对象,允许我们利用子类扩展的功能,同时保持代码的通用性。下面将详细解释这一概念,并探讨其背后的机制、注意事项以及相关的访问权限问题。 首先,让我们...

    第三章 Spring4 依赖注入

    而`@Primary`则用于标记一个bean作为首选,当没有明确指定时,Spring会优先选择这个bean注入。 六、`@Resource`与`@Autowired`的区别 `@Resource`默认按名称注入,`@Autowired`默认按类型注入。两者都可以通过`@...

    再次详细说明在继承中的程序执行顺序,子类与父类到底哪个先执行

    本文将深入探讨在继承中的程序执行顺序,以及子类与父类的执行顺序问题。 首先,我们需要了解Java或Python等面向对象语言中类的构造过程。当一个类实例化时,其构造函数(在Java中是`构造器`,在Python中是`__init_...

    屏蔽父类成员C#程序

    这种做法通常是为了提供特定于子类的行为,或者更改父类中成员的可见性。让我们深入探讨一下这个概念,以及如何在实际编程中应用。 首先,当我们谈论"屏蔽",它在C#中的技术术语是`new`修饰符。当你在子类中定义一...

    关于Java变量的可见性问题Java开发Java经验技巧共

    此外,了解变量可见性也有助于理解和解决多线程环境中的并发问题,如通过使用volatile关键字确保多线程环境下的变量可见性。 总的来说,Java变量的可见性是编程实践中不可或缺的一部分,熟练掌握这一概念能够帮助...

    spring 学习 springcore例子

    不同作用域的Bean有不同的生命周期和可见性。 9. **事件驱动**:Spring容器提供了事件驱动模型,允许Bean之间通过`ApplicationEvent`和`ApplicationListener`接口进行异步通信。 10. **SpEL(Spring Expression ...

    spring Configurable注解用法

    这个特性使得即使在这些“不可见”的对象中,也能享受到Spring的依赖注入和其他服务。在Spring Boot项目中,`@Configurable`的应用可以简化代码并增强可维护性。 首先,让我们详细了解一下`@Configurable`注解。这...

    spring5.0.2中文官网文档

    Spring框架是Java领域内一个非常流行的设计层面的开源框架,其核心理念在于解决不同层面间的松耦合问题。在Spring框架中,通过面向接口的编程思想,能够使得业务逻辑层与其他层次如数据访问层、表示层等实现解耦,...

    Spring相关测试1

    通过理解并熟练掌握这些配置方法和细节,开发者可以在Spring框架中灵活地管理Bean,实现依赖注入和控制反转,从而提高代码的可维护性和可测试性。 总的来说,Spring框架的Bean配置和注入是其核心特性之一,对于理解...

    spring.doc

    - **依赖注入(DI)**:Spring通过控制反转(IOC)实现DI,使得对象间的依赖关系在运行时被注入,降低了组件之间的耦合。 - **面向切面编程(AOP)**:Spring的AOP允许开发者定义“切面”,这些切面可以包含跨越多...

    SPRING面试宝典

    - **可测试性增强**:依赖关系可以在运行时注入,使得单元测试变得更加容易。 - **易于维护**:依赖关系清晰可见,方便管理和修改。 **1.15 常见的ApplicationContext实现有哪些?** 常见的ApplicationContext实现...

    spring帮助文档

    Bean的范围定义了一个bean的生命周期和可见性,Spring支持多种不同的范围: - **单例范围**:在整个应用程序中只有一个实例。 - **原型范围**:每次请求都会创建一个新的实例。 - **请求范围**:每个HTTP请求都有一...

    spring3.1.0.RELEASE项目源码

    此外,对于基于注解的切面,Spring 3.1增强了注解的可见性和继承性,使得切面的定义更加灵活。 在事务管理方面,Spring 3.1提供了更好的声明式事务管理,包括对JTA事务的支持和对异步操作的事务管理。这使得在...

    spring boot +spring security+thymeleaf实现权限

    Spring Boot提供了便捷的应用启动和管理,Spring Security负责安全性,而Thymeleaf则使我们在前端能够灵活地展现权限信息。这三者结合,构建了一个强大且易于维护的Web应用。在实际项目中,还可以根据需求扩展功能,...

    spring解密全书

    在Spring框架中,依赖注入允许开发者在运行时通过配置文件或注解来管理对象及其依赖关系,而不是在代码中硬编码这些依赖。这种方式增强了代码的可测试性和可维护性,因为对象的创建和装配过程可以独立于实际的实现...

    Spring注解源码

    当我们在字段、方法或构造器参数上使用`@Autowired`时,Spring会自动寻找匹配的bean来填充。源码中,`@Autowired`同样具有`@Retention(RUNTIME)`和`@Target`属性,但还包含了一个`@Qualifier`的元注解,用于指定注入...

    spring中所需要的知识点及学习方向文档

    非侵入式设计意味着Spring不会强制你依赖于它,而是允许你在需要时选择性地使用。控制反转(IoC)则是Spring框架的核心理念,它通过容器管理对象的生命周期,将对象的创建、初始化和销毁过程从代码中分离出来,从而...

    JAVA编程之spring框架

    同时,Spring的配置文件使得组件的依赖关系清晰可见,方便了系统的维护和扩展。 总的来说,Spring框架通过IOC和DI实现了组件的松耦合,提供了灵活的数据源注入,以及优雅的接口注入机制,极大地提升了Java应用程序...

    spring-framework开发中文文档

    这包括了Spring的依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问、安全性、测试等方面的知识。 部分内容虽然无法完整显示,但从给出的乱码文字中可以推断,文档内容可能涉及了Spring的一些核心组件和...

    官方原版源码 spring-framework-5.1.18.RELEASE.zip

    Spring的依赖注入是其核心特性之一,它使得组件之间的耦合度降低,增强了代码的可测试性和可维护性。在5.1.18.RELEASE版本中,DI通过@Autowired、@Qualifier等注解进行更精细的控制,源码中可以看到这些注解的处理...

Global site tag (gtag.js) - Google Analytics