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"的更多相关文章

  1. Spring 完成自动注入(autowire)

    目录 两个测试类 普通方式手动注入 普通方式注入的缺点 自动注入的介绍 配置自动注入的方式 配置全局自动注入 局部单独配置 利用注解实现自动注入 两个测试类 package cn.ganlixin.p ...

  2. spring bean自动注入

    使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的 ...

  3. 关于spring的自动注入

    关于spring的自动注入 spring里面可以设置BeanDefinition自动注入类型,默认为AUTOWIRE_NO(不进行自动注入).mybatis里面的扫描接口生成MapperFactory ...

  4. SSM-Spring-06:Spring的自动注入autowire的byName和byType

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- di的注入上次讲了一些,这次主要阐述域属性的自动注入 先讲byType方式 看名字就知道是根据类型进行自动注入 ...

  5. spring学习 十五 spring的自动注入

    一  :在 Spring 配置文件中对象名和 ref=”id” ,id 名相同使用自动注入,可以不配置<property/>,对应的注解@Autowired的作用 二: 两种配置办法 (1 ...

  6. 关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案

    搭建完spring boot的demo后自然要实现自动注入来体现spring ioc的便利了,但是我在实施过程中出现了这么一个问题,见下面,这里找到解决办法记录下来,供遇到同样的问题的同僚参考 Des ...

  7. spring拦截器中使用spring的自动注入

    需要在spring的拦截器中使用自定义的服务,这要就设计到将服务注入到拦截器中.网上看的情况有两种: 1. @Configuration public class OptPermissionHandl ...

  8. 旷世奇坑!!!spring 不能自动注入

    一入此坑,只想跳楼.我发誓应该不会有第二个人会进这种坑! 问题描述: 总是不能注入dao层,即@Resposity.always!always!always!(尝试了天下之因特网所有的注入方式,都不能 ...

  9. spring AutowireCapableBeanFactory 自动注入

    文档:http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/Auto ...

随机推荐

  1. Node.js 多线程完全指南

    [原文] 很多人都想知道单线程的 Node.js 怎么能与多线程后端竞争.考虑到其所谓的单线程特性,许多大公司选择 Node 作为其后端似乎违反直觉.要想知道原因,必须理解其单线程的真正含义. Jav ...

  2. 使用 Consul 作为 Python 微服务的配置中心

    使用 Consul 作为 Python 微服务的配置中心 Consul 作为数据中心,提供了 k/v 存储的功能,我们可以利用这个功能为 Python 微服务提供配置中心. Consul 提供了 HT ...

  3. 【视频开发】 十全大补:CxImage图像处理类库

     十全大补:CxImage图像处理类库 转载IT168        CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JP ...

  4. EditPlus配置ftp连接linux

    选择文件/FTP下面的设置FTP服务器 1.点击添加 2.填写名称.ftp服务器.用户名.密码信息 3.点击高级设置 4.选择加密方式为sftp,端口22,如果不填端口号,默认也是22,确定 5.确定 ...

  5. (七)linux 学习 -- 键盘高级操作技巧

    The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap09.html 文章目录 移动光标 修改文本 ...

  6. java笔记3

    面向对象的特点:   1.封装:   2.继承   3.多态 好处:   是一种符合人们思考习惯的思想  可以将复杂的事情简单化  将程序员从执行者变为指挥者 二 类与对象 成员变量与局部变量的区别: ...

  7. PAT(B) 1070 结绳(Java)

    题目链接:1070 结绳 (25 point(s)) 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子 ...

  8. 《Docker Deep Dive》Note - Docker 引擎

    <Docker Deep Dive>Note Docker 引擎 1. 概览 graph TB A(Docker client) --- B(daemon) subgraph Docker ...

  9. go语言学习笔记---读取文件io/ioutil 包

    io/ioutil 包几个函数方法 名称  作用 备注 ReadAll 读取数据,返回读到的字节 slice 1 ReadDir 读取一个目录,返回目录入口数组 []os.FileInfo, 2 Re ...

  10. vim操作常用命令总结

    这里记录下linux在vim编辑器中的常用命令 vi 的三种模式: 一般模式:以vi打开一个文件时,就是一般模式:可以移动光标,删除字符或删除整行,可以复制.粘贴等操作 编辑模式:在一般模式按下 i ...