Autowiring collabraotors自动绑定
1、 byType 根据类型自动绑定,如果同种类型的实例在容器中不是唯一的,将会产生异常
byName 根据属性名查找相同的实例名绑定,如属性名master,Spring 将会找名字为master的实例
constrctcor 类似于byType,在容器中找和类型一致的唯一的bean实例,如果没有找到会产生异常
autodetect 根据反射到类的情况,如果发现有默认的构造器就会使用byType,否则使用constrctor
不管是哪种类型的绑定,spring都是先在本容器中查找,如果没有匹配的再到父容器中查找。
2、自动绑定带来的好处
1、简化了配置文件,无需再显式的写出依赖关系
2、自动绑定使你的配置自动更新,如:你在一个类中新加了个依赖,spring会自动帮你完成绑定,你无需更改配置文件。
自动绑定带来的坏处
1、自动绑定使配置容易产生歧义相对显示的写出这些依赖关系,不能过明显的看出类之间的依赖关系;
2、自动绑定的信息不会被自动文档工具生成
3、当你使用byType来绑定,如果容器中同种类型存在多个对象将会产生异常,spring提供了3个机制来解决这样的问题
1、取消自动绑定,用显式的方式指明属性的依赖关系
2、通过在bean定义时指定将不作为自动绑定对象依赖,将autowire-candiate 属性值设为false
3、如果使用的jdk版本在5.0以上可以使用标注来解决
Excluding a bean from being available for autowiring排除某个bean被自动绑定
1、定义bean时设置autowire-candiate的属性为false
2、在最高层<beans>里定义default-autowire-candiates属性为一些表达式,如限制一些bean是以Repository结尾的才支持自动绑定可以定义成“*Repository”。如果支持多
个格式,可以以逗号隔开这个表达式。
3、bean中autowire-candiate的定义后优先级高于beans里定义的default-autowire-candiates,对于这样的bean,default-autowire-candiates不再会起效。
注:如果在容器有父容器情况时,相同类型的bean实例同样也会被检测到,因此父容器的bean实例同样也需要考虑!
分享到:
相关推荐
这个“spring 数据绑定心得”课程是专为新手设计的,旨在帮助初学者快速掌握这一关键技术。让我们深入探讨一下其中涉及的知识点。 首先,简单数据类型的绑定是指将用户界面中的输入值直接映射到Java的基本数据类型...
在处理用户输入时,Spring MVC支持数据绑定,能够自动将表单数据绑定到对应的JavaBean属性上。然而,对于特殊的数据类型,如日期,Spring MVC可能无法自动处理非标准格式的日期字符串。在这种情况下,我们需要自定义...
"Spring MVC数据绑定大全.rar"这个压缩包很可能包含了全面讲解Spring MVC数据绑定技术的资料,如"Spring MVC数据绑定大全.pdf"。下面将详细阐述Spring MVC数据绑定的关键知识点。 1. **注解驱动的数据绑定**:...
同时,Spring Boot还提供了强大的配置绑定功能,可以将配置文件中的属性直接注入到Java对象中。 6. **Spring Boot CLI(命令行工具)** Spring Boot提供了命令行接口(CLI),使得开发者可以通过命令行快速创建、...
书中将阐述Spring Boot的自动配置、起步依赖和命令行接口等特性。 5. **Spring Data**:Spring Data提供了对各种数据存储的统一访问层,包括JPA、MongoDB等。书中会讲解如何使用Spring Data来简化数据访问操作。 6...
例如,一个GET请求中的查询参数`id=123`会被自动绑定到控制器方法的`int id`参数上。 2. **默认数据类型绑定**: 当请求参数与控制器方法参数类型不完全匹配时,Spring MVC会尝试进行默认转换。例如,字符串"true...
《Spring Boot 2.0深度实践...教程中可能涵盖了如何创建项目、配置自动配置、编写RESTful API、集成数据库、监控应用状态、进行测试等多个方面,通过源码分析和实例演示,确保学习者能全面掌握Spring Boot的核心技术。
### Spring技术内幕与深入解析Spring架构与设计 #### 书籍概述 本书《Spring技术内幕+深入解析Spring架构与设计》是一本专为Spring框架开发者所撰写的深度技术指南。作者凭借超过十年的Java开发经验,从Spring 3.0...
Spring 3 Reference Simplified Chinese_20110923.pdf这份文档详细解读了这一版本的特性,包括RESTful Web服务的支持、数据绑定、类型安全的转换服务、表达式语言(SpEL)以及对JSR-303/JSR-349 Bean验证的支持。...
8. **Spring Boot**:探讨Spring Boot如何简化Spring应用的启动和配置,以及其内置的各种特性,如自动配置、健康检查和Actuator等。 9. **Spring Security**:介绍Spring Security框架,用于实现身份验证和授权,...
6. **Spring Boot**:Spring的现代启动器,简化了Spring应用的配置和启动,书中可能涉及自动配置、Actuator监控、健康检查等内容。 7. **Spring Cloud**:对于分布式系统开发,Spring Cloud提供了一整套解决方案,...
在本篇文档的第二部分,我们将深入探讨Spring的核心技术,包括控制反转(IoC)容器、事件处理、资源管理、国际化(i18n)、验证、数据绑定、类型转换、Spring表达式语言(SpEL)以及面向切面编程(AOP)。...
Spring提供了Spring MVC作为构建Web应用的框架,支持RESTful架构风格,通过注解来简化请求映射、处理、参数绑定等。 6.事务管理: Spring框架提供了声明式事务管理的功能,通过Spring的事务抽象,可以实现声明式...
《Spring揭秘》这本书将通过实例和详细的解释,引导读者一步步掌握这些核心概念和技术,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过阅读本书,你可以深入理解Spring框架的工作原理,并能熟练地将其...
4. 数据绑定和验证:模型数据的自动绑定,以及使用JSR-303进行数据验证。 五、Spring JDBC与事务管理 1. Spring JDBC:理解JdbcTemplate和NamedParameterJdbcTemplate的使用,简化数据库操作。 2. 事务管理:讲解...
依赖注入是Spring框架的核心特性之一,它允许对象在运行时自动获得其所需的依赖项,而不是在代码中硬编码这些依赖。这种方式提高了代码的可测试性和可维护性,因为依赖关系变得更加清晰,也更容易进行单元测试。 ##...
3. 视图解析:Spring MVC提供多种视图技术,如JSP、Thymeleaf、FreeMarker等,通过ViewResolver组件进行视图解析。 4. 数据绑定与验证:模型数据可以直接绑定到控制器方法的参数上,同时支持JSR-303/JSR-349验证,...
6. **Spring Boot**:Spring Boot简化了Spring应用的初始搭建和运行过程,通过“起步依赖”(Starter POMs)自动配置,可以快速创建独立运行的、生产级别的应用。 7. **Spring Data**:这个模块旨在简化数据访问,...
- **数据绑定和验证**:Spring MVC提供了强大的数据绑定和验证机制,可以帮助开发人员更轻松地处理用户输入。 综上所述,“Spring开发技术手册”不仅涵盖了Spring框架的基础知识,还深入介绍了其实现原理及应用场景...