注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式相关的知识,希望对你有一定的参考价值。

参考技术A

2.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

优秀架构师需要培养的四种架构思维

一个优秀架构师必须要培养四种架构思维:抽象、分层、分治、演化。
  1. 架构的本质是管理复杂性,抽象、分层、分治和演化思维是架构师征服复杂性的四种根本性武器。
  2. 掌握了抽象、分层、分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等。
  3. 架构设计不是静态的,而是动态演化的。只有能够不断应对环境变化的系统,才是有生命力的系统。所以即使你掌握了抽象、分层和分治这三种基本思维,仍然需要演化式思维,在设计的同时,借助反馈和进化的力量推动架构的持续演进。
  4. 架构师在关注技术,开发应用的同时,需要定期梳理自己的架构设计思维,积累时间长了,你看待世界事物的方式会发生根本性变化,你会发现我们生活其中的世界,其实也是在抽象、分层、分治和演化的基础上构建起来的。另外架构设计思维的形成,会对你的系统架构设计能力产生重大影响。可以说对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型/系统型架构师的一个分水岭。

以上是关于注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式的主要内容,如果未能解决你的问题,请参考以下文章

9种ElasticSearch分词器详解,一文get!!!| 博学谷狂野架构师

在阿里工作5年了,高级java架构师培训

成为架构师课程系列架构设计中的核心思维方法

一文带你深度解析JVM虚拟机,看这份阿里架构师文档就够了

一文带你深度解析JVM虚拟机,看这份阿里架构师文档就够了

详解Java解析XML的四种方法