Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"
1.在Spring 配置文件中对象名和ref=”id”id 名相同使用自动注入,可以不配置<property/>
2.两种配置办法
2.1在<bean>中通过 autowire=”” 配置,只对这个<bean>生效
2.2在<beans>中通过 default-autowire=””配置,表当当前文件中所有<bean>都是全局配置内容
3.autowire=”” 的可取值
3.1default: 默认值,根据全局 default-autowire=””值. 默认全局和局部都没有配置情况下,相当于no.
3.2no: 不自动注入
public class People { //类的关系
private Teacher teacher;
}
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="default">
<property name="teacher" ref="teacher"></property>
</bean>
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People">
<property name="teacher" ref="teacher"></property>
</bean>
3.3byName: 通过名称自动注入.在Spring 容器中寻找缺省的类的同名的Id
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byName"></bean>
3.4byType: 根据类型注入.
3.4.1spring 容器中不可以出现两个相同类型的<bean>
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byType"></bean>
输出: People{teacher=com.test.Teacher@6093dd95}
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="teacher124" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byType"></bean>
输出报错信息:expected single matching bean but found 2: teacher123,teacher124
3.5constructor: 根据构造方法注入.
3.5.1提供对应参数的构造方法(构造方法参数中包含注入对戏那个)
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="teacher" class="com.test.Teacher"></bean>
<!--保证constructor的入口参数和id的名称一致 -->
<bean id="people" class="com.test.People" autowire="constructor"></bean>
public class People {
private Teacher teacher; public People() {
} public People(Teacher teacher123) {
this.teacher = teacher123;
}
}
建议: 在全局使用default-autowire=” byName "
Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"的更多相关文章
- Spring 完成自动注入(autowire)
目录 两个测试类 普通方式手动注入 普通方式注入的缺点 自动注入的介绍 配置自动注入的方式 配置全局自动注入 局部单独配置 利用注解实现自动注入 两个测试类 package cn.ganlixin.p ...
- spring bean自动注入
使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的 ...
- 关于spring的自动注入
关于spring的自动注入 spring里面可以设置BeanDefinition自动注入类型,默认为AUTOWIRE_NO(不进行自动注入).mybatis里面的扫描接口生成MapperFactory ...
- SSM-Spring-06:Spring的自动注入autowire的byName和byType
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- di的注入上次讲了一些,这次主要阐述域属性的自动注入 先讲byType方式 看名字就知道是根据类型进行自动注入 ...
- spring学习 十五 spring的自动注入
一 :在 Spring 配置文件中对象名和 ref=”id” ,id 名相同使用自动注入,可以不配置<property/>,对应的注解@Autowired的作用 二: 两种配置办法 (1 ...
- 关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案
搭建完spring boot的demo后自然要实现自动注入来体现spring ioc的便利了,但是我在实施过程中出现了这么一个问题,见下面,这里找到解决办法记录下来,供遇到同样的问题的同僚参考 Des ...
- spring拦截器中使用spring的自动注入
需要在spring的拦截器中使用自定义的服务,这要就设计到将服务注入到拦截器中.网上看的情况有两种: 1. @Configuration public class OptPermissionHandl ...
- 旷世奇坑!!!spring 不能自动注入
一入此坑,只想跳楼.我发誓应该不会有第二个人会进这种坑! 问题描述: 总是不能注入dao层,即@Resposity.always!always!always!(尝试了天下之因特网所有的注入方式,都不能 ...
- spring AutowireCapableBeanFactory 自动注入
文档:http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/Auto ...
随机推荐
- python使用consul进行服务注册和发现
阅读目录 一.安装启动consul 二.python服务注册 三.golang服务注册 四.通过API的方式获取信息 回到顶部 一.安装启动consul 1.通过docker快速安装 #获取docke ...
- 如何确定垃圾?JVM GC ?
如何确定垃圾? 正文 如何确定垃圾? 前面已经提到 JVM 可以采用 引用计数法 与 可达性分析算法 来确定需要回收的垃圾,我们来具体看一下这两种算法: 引用计数法 该方法实现为:给每个对象添加一个引 ...
- 安装Delphi7的错误
delphi7运行不正常的提示unable to rename'c:\program files\Borland\delphi7\Bin\delphi32.$$$'to'c:\program file ...
- Nvidia Jetson TX2开发板学习历程(1)- 详细开箱、上电过程
考试周已经结束了,开发板也已经到了.希望借着这个假期能够好好的利用这块开发板学习Linux系统以及Tensorflow的相关知识. 我打算将学习历程通过博客的方式写出来,作为自己的笔记,也可以供以后拿 ...
- Django最全思维导图
思维导图传送门
- 可能这些是你想要的H5软键盘兼容方案
前言 最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上.需求很明确,看似很简单,其实不然.从实验过一些机型上看,发现主要存在以下问题: ...
- [CodeChef-ANUDTQ] Dynamic Trees and Queries
类似维护括号序列,给每个点建两个点,然后所有操作都能轻松支持了.注意sum和lastans是long long. #include<cstdio> #include<algorith ...
- 全栈项目|小书架|微信小程序-项目结构设计分包
前面的文章 介绍了服务端的基础搭建以及用户模块的设计,接下来就是在服务端和客户端实现具体的业务了. 本篇文章先来介绍微信小程序开发的项目结构设计,也就是项目分包情况. 由于项目是在<极客时间-9 ...
- js 简单的滑动4
js 简单的滑动教程(四) 作者:Lellansin 转载请标明出处,谢谢 在大概的了解滑动的基本原理和怎么去实现之后,现在我们将更深入的去讨论js的滑动. 相信细心的朋友应该已经发现了,在本教程 ...
- ADO.NET 六(DataRow DataColumn)
已经介绍了使用 SqlCommand 对象中的 ExecuteNonQuery 方法执行非查询 SQL 语句来实现对数据表的更新操作,使用 DataSet 对象也能实现相同的功能, 并且能节省数据访问 ...