使用Autowired注解进行属性自动注入时,常常会有两个类同时继承一个接口的情况:
public interface InterfaceService { void doSomething(); } @Service("interfaceServiceA") public class InterfaceServiceA implements InterfaceService{ public void doSomething(){ System.out.println("xxx"); } } @Service("interfaceServiceB") public class InterfaceServiceB implements InterfaceService{ public void doSomething(){ System.out.println("xxx"); } } @Controller public class MvcController{ @Autowired InterfaceService interfaceServiceB; }
当存在上面的情况时,一直以为Autowired只通过byType进行Bean的自动装配。需要加@Qualifier("interfaceServiceB")才能注入具体的Bean。
其实Autowired自动装配类似于首先进行byType,当发现有多个时再进行byName。
所以,当接口与实现类一对一时,属性名称可以任意定义。一对多时,需要注意属性名必须与Bean在Spring 容器中的ID一致才能有效。
相关推荐
Spring Cloud Context 提供了 ApplicationContext 的实用程序和特殊服务,而 Spring Cloud Commons 则是一组在不同的 Spring Cloud 实现中使用的抽象和常用类。 在使用 Spring Cloud 时,需要注意到由于“非法密钥...
Spring Framework 6.0.8-SNAPSHOT 的中文文档是针对这一最新版本的详尽指南,旨在解决中文互联网上关于Spring框架翻译不准确、更新滞后的问题。文档通过Deepl AI 翻译并进行了人工校验,确保了内容的准确性和专业性...
Spring中文API帮助文档是针对Spring框架的一份详尽指南,旨在帮助中文开发者更便捷地理解和使用Spring的各种功能。 该文档涵盖了Spring框架的多个核心模块,包括: 1. **Spring Core**:这是Spring框架的基础,...
Spring Boot 是一个基于 Spring Framework 的快速开发工具,旨在简化 Spring 应用程序的初始设置和配置过程,从而提高开发效率。Spring 框架以其模块化和灵活性著称,但这也可能导致在配置和集成各个子项目时遇到...
Spring源码最难问题:当Spring AOP遇上循环依赖 Spring源码中最难的问题之一是循环依赖问题,当Spring AOP遇上...通过三级缓存,Spring可以确保bean的实例化过程中不存在循环依赖问题,从而实现了bean的正确实例化。
因此,在使用 DependsOn 注解时,需要了解 Spring 中 bean 的加载过程,以免出现错误。 其他实现方式 除了上述两种方式外,还有其他方式可以控制 2 个 bean 的初始化顺序。例如,可以使用 Spring 的 @Order 注解来...
13. **常见问题**:解答在使用Spring Boot过程中可能遇到的问题,以及如何解决。 这份中文API文档不仅对初学者有指导意义,也为经验丰富的开发者提供了详细的参考信息,帮助他们深入理解Spring Boot的内部工作原理...
这些内容不仅帮助开发者更好地理解Spring框架,还指导开发者在实际开发过程中高效地使用Spring框架的各种功能。 通过阅读Spring框架参考手册,开发者可以掌握Spring框架的体系结构、各个模块的详细功能以及在不同...
本文将详细分析Spring通过classpath加载配置文件的不同情形,并提供解决加载过程中可能遇到的问题的方法。 首先,我们来看一下Spring加载配置文件的基本方式。在Spring中,可以通过ApplicationContext接口的实现类...
在本例中,我们可以创建一个`UserService`接口,用于处理转账操作,然后使用Spring来注入实现该接口的类。这样,我们可以在不修改代码的情况下更换或扩展服务的实现。 接下来,我们谈谈DBUtils。DBUtils是Apache的...
开发Spring的过程中出现Eclipse不能识别标签,需要引用 spring-tx标签,spring-tx-4.0.xsd 可以解决标签不识别的问题
- 介绍了使用JSR 330标准注解时需要注意的问题。 **4.12 基于Java的容器配置** - **4.12.1 基本概念:@Configuration和@Bean** - 介绍了@Configuation注解和@Bean注解的基本概念。 - **4.12.2 使用...
在解决“unknown”问题的过程中,使用`mvn clean install`命令进行完整构建,可以帮助定位和解决问题。同时,查阅官方文档和社区论坛,如Stack Overflow,通常能找到其他开发者遇到类似问题的解决方案。 在提供的...
Spring框架由多个模块组成,包括Core Container、Data Access/Integration、Web、AOP、Instruments和Test等,这些模块可以独立使用,也可以组合使用以满足不同项目需求。 二、Core Container Core Container是...
本文将详细讲解如何在Spring MVC和MyBatis集成的项目中调用MySQL存储过程。 首先,让我们理解存储过程的概念。存储过程是在数据库中预编译的一组SQL语句,可以包含输入、输出和内部参数,能够执行复杂的业务逻辑。...
本笔记主要介绍了从单体架构到微服务架构的演变过程,以及 Spring Cloud 中的微服务架构搭建。下面是本笔记的详细知识点总结: 一、单体架构 单体架构是指整个系统只有一个工程,打包往往是打成了 war 包,然后...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
HTTP 缓存支持是关于如何在 Spring MVC 中使用 HTTP 缓存控制头,如 Cache-Control、ETag 和 Last-Modified,以及如何对静态资源进行缓存处理。控制器类名-处理器映射 ControllerClassNameHandlerMapping 是一种基于...
关于Spring框架的实践应用,开发者可以在Spring的官方文档中找到详细的API文档、指南以及各种示例项目,以帮助开发人员更好地理解和使用Spring框架。官方的下载地址和GitHub地址也提供了从源代码到二进制构建的入口...