-
当父类的可见性小于父类时,采用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
目前还没有答案
相关推荐
这种现象发生时,父类类型的引用被用来创建和操作子类的对象,允许我们利用子类扩展的功能,同时保持代码的通用性。下面将详细解释这一概念,并探讨其背后的机制、注意事项以及相关的访问权限问题。 首先,让我们...
而`@Primary`则用于标记一个bean作为首选,当没有明确指定时,Spring会优先选择这个bean注入。 六、`@Resource`与`@Autowired`的区别 `@Resource`默认按名称注入,`@Autowired`默认按类型注入。两者都可以通过`@...
本文将深入探讨在继承中的程序执行顺序,以及子类与父类的执行顺序问题。 首先,我们需要了解Java或Python等面向对象语言中类的构造过程。当一个类实例化时,其构造函数(在Java中是`构造器`,在Python中是`__init_...
这种做法通常是为了提供特定于子类的行为,或者更改父类中成员的可见性。让我们深入探讨一下这个概念,以及如何在实际编程中应用。 首先,当我们谈论"屏蔽",它在C#中的技术术语是`new`修饰符。当你在子类中定义一...
这个特性使得即使在这些“不可见”的对象中,也能享受到Spring的依赖注入和其他服务。在Spring Boot项目中,`@Configurable`的应用可以简化代码并增强可维护性。 首先,让我们详细了解一下`@Configurable`注解。这...
此外,了解变量可见性也有助于理解和解决多线程环境中的并发问题,如通过使用volatile关键字确保多线程环境下的变量可见性。 总的来说,Java变量的可见性是编程实践中不可或缺的一部分,熟练掌握这一概念能够帮助...
不同作用域的Bean有不同的生命周期和可见性。 9. **事件驱动**:Spring容器提供了事件驱动模型,允许Bean之间通过`ApplicationEvent`和`ApplicationListener`接口进行异步通信。 10. **SpEL(Spring Expression ...
Spring框架是Java领域内一个非常流行的设计层面的开源框架,其核心理念在于解决不同层面间的松耦合问题。在Spring框架中,通过面向接口的编程思想,能够使得业务逻辑层与其他层次如数据访问层、表示层等实现解耦,...
通过理解并熟练掌握这些配置方法和细节,开发者可以在Spring框架中灵活地管理Bean,实现依赖注入和控制反转,从而提高代码的可维护性和可测试性。 总的来说,Spring框架的Bean配置和注入是其核心特性之一,对于理解...
- **依赖注入(DI)**:Spring通过控制反转(IOC)实现DI,使得对象间的依赖关系在运行时被注入,降低了组件之间的耦合。 - **面向切面编程(AOP)**:Spring的AOP允许开发者定义“切面”,这些切面可以包含跨越多...
- **可测试性增强**:依赖关系可以在运行时注入,使得单元测试变得更加容易。 - **易于维护**:依赖关系清晰可见,方便管理和修改。 **1.15 常见的ApplicationContext实现有哪些?** 常见的ApplicationContext实现...
Bean的范围定义了一个bean的生命周期和可见性,Spring支持多种不同的范围: - **单例范围**:在整个应用程序中只有一个实例。 - **原型范围**:每次请求都会创建一个新的实例。 - **请求范围**:每个HTTP请求都有一...
Spring Boot提供了便捷的应用启动和管理,Spring Security负责安全性,而Thymeleaf则使我们在前端能够灵活地展现权限信息。这三者结合,构建了一个强大且易于维护的Web应用。在实际项目中,还可以根据需求扩展功能,...
在Spring框架中,依赖注入允许开发者在运行时通过配置文件或注解来管理对象及其依赖关系,而不是在代码中硬编码这些依赖。这种方式增强了代码的可测试性和可维护性,因为对象的创建和装配过程可以独立于实际的实现...
当我们在字段、方法或构造器参数上使用`@Autowired`时,Spring会自动寻找匹配的bean来填充。源码中,`@Autowired`同样具有`@Retention(RUNTIME)`和`@Target`属性,但还包含了一个`@Qualifier`的元注解,用于指定注入...
同时,Spring的配置文件使得组件的依赖关系清晰可见,方便了系统的维护和扩展。 总的来说,Spring框架通过IOC和DI实现了组件的松耦合,提供了灵活的数据源注入,以及优雅的接口注入机制,极大地提升了Java应用程序...
这包括了Spring的依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问、安全性、测试等方面的知识。 部分内容虽然无法完整显示,但从给出的乱码文字中可以推断,文档内容可能涉及了Spring的一些核心组件和...
3. **单例模式支持**:Spring 容器默认采用单例模式来管理 Bean,这种模式可以提高应用的性能,并减少内存消耗。 4. **AOP 技术**:Spring 支持 AOP 编程,能够轻松实现诸如权限拦截、运行期监控等功能,使得业务...
这个小例子展示了如何整合这三种技术来创建一个基于MVC架构的.NET应用程序,利用Spring.NET提供依赖注入(DI)和面向方面的编程(AOP),以及NHibernate作为持久层框架处理数据库交互。以下是关于这些技术及其整合的...
6. 自定义注解:Spring允许开发者自定义注解,并通过@Retention(RetentionPolicy.RUNTIME)确保注解在运行时可见,然后使用@ComponentScan或自定义的注解处理器实现功能。 7. 配合JSR-330标准:Spring支持JSR-330...