自动注入

  1. 概念
    Spring 配置文件中对象名和 ref=“id” 的id 名相同,使用自动注入,可以不配置property/ 标签
  2. 两种配置办法
    ①在bean 标签中通过 autowire=”” 配置,只对这个 bean 标签生效
    ②在beans 标签中通过 default-autowire=””配置,表当当前文件中所有 bean 标签都是全局配置内容
    在applicationContext.xml中:
<beans default-autowire="xxx"
>

说明:在当前配置文件中,所有类都是自动注入,注入类型是你写的xxx

代码实践

  1. 新建一个类Teacher
  2. 新建一个类People,在类中新建一个Teacher 对象,加入set和get方法
public class People{private Teacher teacher;public Teacher getTeacher(){return teacher;} public Teacher setTeacher(Teacher teacher){this.teacher = teacher;}
}
  1. 在配置文件applicationContext.xml中
    id取值任意(一般为类名首字母小写),class取包名和类名的全路径
<bean id="teacher" class="com.youdian.test.Teacher"></bean>
<bean id="people" class="com.youdian.test.People"><property name="teacher" ref="teacher"></property>
</bean>

而用自动注入是加入了一个属性autowire

<bean id="teacher" class="com.youdian.test.Teacher"></bean>
<bean id="people" class="com.youdian.test.People" autowire=" "></bean>

可以用Test进行测试

public class Test{public static void main(String[] args){ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");People peo=ac.getBean("people",People.class);System.out.println(peo);}
}

注:默认没有值,可以手动设值注入

3.autowire=" " 可取值

  1. default: 默认值,根据全局 default-autowire=””值.默认全局和局
    部都没有配置情况下,相当于 no
  2. no: 不自动注入
  3. byName: 通过名称自动注入.在 Spring 容器中找类的 id
  4. byType: 根据类型注入
    spring 容器中不可以出现两个相同类型的bean 标签
  5. constructor: 根据构造方法注入
    ①提供对应参数的构造方法(构造方法参数中包含注入对戏那个)
    ②底层使用 byName, 构造方法参数名和其他 bean 标签的 id相同

Spring——16 自动注入相关推荐

  1. 【Spring学习】spring注解自动注入bean

    Spring mvc注解用到的配置: <!-- 启用spring mvc 注解 --> <context:annotation-config /> <context:co ...

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

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

  3. Spring中自动注入的两种方式

    目录 1. 前言 2. set注入和构造注入. 3. 什么情况下要使用自动注入? 4. 自动注入之byName 5. 自动注入之byType注入 1. 前言 Spring的核心技术IOC(Intoro ...

  4. spring——autowire自动注入

    通过指定bean标签上的autowire属性可对bean对象进行自动注入 autowire = byName 根据名称注入 autowire = byType 根据类型注入 当有多个bean与属性对应 ...

  5. Spring如何自动注入一个接口多个实现实例

    如题所述,当一个接口被多个子类实现时,Spring框架怎样从容器中正确取出我们想要的实例呢? (定义了CommonService接口,同时有个两个子类实现了这个接口,同时两个实现类上都加了@Servi ...

  6. Spring官网阅读(三)自动注入

    上篇文章我们已经学习了1.4小结中关于依赖注入跟方法注入的内容.这篇文章我们继续学习这结中的其他内容,顺便解决下我们上篇文章留下来的一个问题-----注入模型. 前言: 在看下面的内容之前,我们先要对 ...

  7. 基于spring自动注入及AOP的表单二次提交验证

    2019独角兽企业重金招聘Python工程师标准>>> 这几天在网上闲逛,看到了几个关于spring的token二次提交问题,受到不少启发,于是自己动手根据自己公司的项目框架结构,制 ...

  8. 网店版重生系列:都是Spring配置中自动注入惹的祸

    在对Spring Container管理的bean进行配置时,有一个很好用的功能就是自动注入,可以根据不同规则对bean所依赖的bean进行自动set,相信最常用的就是设置default-autowi ...

  9. spring源码解析(二) @Autowired自动注入过程

    1.依赖注入到底有几种?两种.四种.五种? 两种: 手动:set(byType.byName).构造器 自动:xml中:set.构造器 autowired注解中:set.属性.构造器 重点不在于到底有 ...

最新文章

  1. harmonyos上的程序用什么语言写,HarmonyOS应用开发 — HelloWorld应用开发E2E体验
  2. Apache下PHP的几种工作方式
  3. OSGi将Maven与Equinox结合使用
  4. java没有这样的元素异常_java – 没有这样的元素异常?
  5. android things 系统镜像文件_开始菜单搬家!Win 10X 系统 UI 全部重做,明年初就能用上...
  6. debian 9.4 安装教程 linux系统debian9.4图文详细安装步骤
  7. Linux中安装.rpm、.tar和.tar.gz或.tgz包
  8. JavaScript学习初步
  9. ef core 批量update 非id_Entity Framework (EF) Core
  10. atitit 高扩展性解决方案 功能扩展法 v2 t66.docx atitit 高扩展性解决方案.docx 1. 功能扩展 vs 性能扩展 2 1.1.       人无远虑,必有近忧。
  11. 文件生成Md5值方法
  12. 使用数据库有什么好处?
  13. matlab的上机报告,数理统计和Matlab上机报告.doc
  14. python request 报错 #No JSON object could be decoded
  15. 【日常折腾】重新安装Windows7,做好ghost备份,迁移主目录,日常软件office,chrome,搜狗输入法,电脑管家,一键ghost进行备份。
  16. ARP和RARP协议工作原理
  17. 发现一个好办法-有问题可以到UNITY论坛搜索
  18. (二)Execute
  19. nodejs 面试题(个人总结)
  20. Flink实时计算指标对数方案

热门文章

  1. 如何创建虚拟机并装系统
  2. 进入信息爆炸时代,大数据产业应运而生
  3. 迁移学习实践 深度学习打造图像的别样风格
  4. 第十届中国大学生服务外包创新创业大赛
  5. PFR简介---Cisco技术
  6. 2003 - Can‘t connect to MySQL server on ‘*.*.*.*‘ (10060 “Unknown err
  7. 【Web学习笔记】数据库连接池配置(DBCP)
  8. [附源码]Python计算机毕业设计SSM基于Web学术会议投稿管理系统(程序+LW)
  9. 三线城市程序员和一线城市的程序员薪资差距有多少呢?
  10. 洛基亚android手机,诺基亚安卓手机有哪些?