1. 三种依赖注入
1.1 构造器注入(推荐)
使用构造函数给成员变量赋值通过配置的方式,让 spring 框架为我们注入方式一:index 指定参数的索引位置
方式二:name 指定参数名称
1.2 setter 方法注入
可以按需注入1.3 字段注入
参数注入(spring framerwork 4.0 后不推荐使用)@autowired@resource@inject@autowiredprivate orderservice orderservice@autowired 处有一个黄色的波浪线提示 "field injection is not recommended"(不推荐使用字段注入)
1.4 三种注入方式的优缺点
spring所提供的三种依赖注入类型:构造器注入适合于强制对象注入;setter注入适合于可选对象注入;而字段注入是应该被避免使用的,因为对象无法脱离容器而独立运行
构造器注入优:会固定依赖注入的顺序;该方式不允许我们创建bean对象之间的循环依赖关系缺:需要注入的对象特别多的时候,我们的构造器就会显得非常的冗余;如果真的出现构造器参数列表过长的情况,可能是这个 bean 承担的责任太多,应该考虑组件的责任拆解参数注入无法注入 final 修饰的变量;final 修饰的变量,在实例化后就不可变,因此只能使用基于构造函数的依赖注入的方式类与di容器高度耦合,我们不能在外部使用它(与 spring 的 ioc 机制紧密耦合)2. 两种依赖查找
bytype :按照 bean 的类型查找,@autowired 注解使用的是该策略byname : 按照 bean 的名称查找,@resource 注解使用的是该策略注解注入方式是否支持@primary来源bean不存在时处理@autowiredbytype是springframework原生注解可指定 required=false 来避免注入失败@resourcebyname否jsr250规范容器中不存在指定bean会抛出异常@injectbytype是jsr330规范 ( 需要导jar包 )容器中不存在指定bean会抛出异常2.1 @autowired
是 spring 的自动装配,根据类型进行自动装配的默认情况下要求依赖对象必须存在,如果需要允许 null 值,可以设置 @autowired(required = false)
如果要按名称装配,可以使用 @autowired @qualifier("beanname") ,指定唯一的 bean 对象
2.2 @resource
是 java 的自动装配,默认 byname,找不到再bytype注意:如要指定了 name 属性 @resource(name="beanname") 就只会按照名称进行装配
2.3 @inject
根据类型自动装配如果需要按名称进行装配,需要配合 @named3. 依赖注入不同类型的属性
3.1 简单类型(value)
3.2 引用类型(ref)
3.3 集合类型
数组或 list 集合
pojo 类型的集合
set 集合
map集合
properties 集合
本文tag:[查找]
- 上一篇: 月入4000多,很难在广州生活下去
- 下一篇: 平南县中学(平南县中学凯发体育客户端官网)
猜你喜欢
- 2023-03-17mediapipe教程:查找与面部表情匹配的模因
- 2023-03-16代码训练营第一天 | leetcode704 .二分查找 27.移除元素
- 2023-03-16国考职位表怎么查(国考职位表怎么查找)
- 2023-03-15如何查找会考成绩「如何查找会考成绩查询」
- 2023-03-12在电脑上查找英语(在电脑上查阅的英文)
- 2023-03-10滞销宝贝怎么查找(滞销宝贝)
-
生活百科网创立与2018年,一直不断致力于免费提供生活,经济,健康,母婴等各类百科知识,帮助解答了5w多人,今后我们仍将一如既往的增加百科内容!
- 常见生活百科知识汇总
- 最近发表
- 标签列表