注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式相关的知识,希望对你有一定的参考价值。
参考技术A2.1 了解DI的思想
顾名思义,依赖注入是由“依赖”和“注入”两个词汇组合而成,那么我们再一次顺藤摸瓜,分别分析这两个词语!
2.2 依赖
关于谁依赖与谁,当然是应用程序依赖于IOC容器。因为应用程序依赖于IOC容器提供的对象所需外部资源,所以就产生了这种依赖关系。(可以理解为入口,虽然不是这么严谨吧!)
2.3 注入
3.1 Setter方法注入
Setter方法注入,它只需要提供对应的Setter方法接口实现注入,由于JavaBean一般都实现了Setter方法,所以Setter方法注入也成为了我们常用的注入方法之一。
3.1.1 定义JavaBean
3.1.2 注入各种数据类型
3.1.3 注入自建类型数据
将Service层需要一个Dao层实现类对象,我们可以使用注入方式来实现对Service层和Dao层的对象关联
将创建的Bean对象注入到另一个对象中,比如一个JavaBean对象中作为了另一个JavaBean对象的属性
3.2 构造方法注入
创建对象时,Spring工厂会通过构造方法为对象的属性赋值。由于某些框架或者项目中并没有为JavaBean提供Setter方法,我们就可以利用其构造方法来注入。不要和我说,没有提供构造方法哈!(开个玩笑!)
3.2.1 定义JavaBean
3.2.2 构造方法注入
3.3 自动注入
不用在配置中 指定为哪个属性赋值,及赋什么值。由spring自动根据某个 "原则" ,在工厂中查找一个bean,为属性注入属性值。
3.3.1 注入场景
将Dao层实现类对象注入到Service层并调用方法得以测试
3.3.2 自动注入的两种方式
基于名称自动注入值
基于类型自动注入值,根据实现的接口来判断并自动注入值,如果实现此接口的实现类太多,它会在很多实现此接口的实现类中选择名字相同的实现类进行注入。(现根据判断,如果不成功,则根据名称注入)
3.4 注解自动注入
使用基于类型自动注入,将Dao层注入到Service层
使用基于名称自动注入,将Dao层注入到Serivce层
使用注入简单类型数据注解来完成简单注入JavaBean
优秀架构师需要培养的四种架构思维
- 架构的本质是管理复杂性,抽象、分层、分治和演化思维是架构师征服复杂性的四种根本性武器。
- 掌握了抽象、分层、分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等。
- 架构设计不是静态的,而是动态演化的。只有能够不断应对环境变化的系统,才是有生命力的系统。所以即使你掌握了抽象、分层和分治这三种基本思维,仍然需要演化式思维,在设计的同时,借助反馈和进化的力量推动架构的持续演进。
- 架构师在关注技术,开发应用的同时,需要定期梳理自己的架构设计思维,积累时间长了,你看待世界事物的方式会发生根本性变化,你会发现我们生活其中的世界,其实也是在抽象、分层、分治和演化的基础上构建起来的。另外架构设计思维的形成,会对你的系统架构设计能力产生重大影响。可以说对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型/系统型架构师的一个分水岭。
以上是关于注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式的主要内容,如果未能解决你的问题,请参考以下文章