PPT链接:https://ptteng.github.io/PPT/PPT-java/java_task1_14_SpringIOC.html#/
视频链接:https://v.qq.com/x/page/n0531i16l90.html
大家好,我是IT修真院北京分院第22期的学员童志荣,一枚正直纯洁善良的java程序员。
今天给大家分享一下,修真院官网Java任务1,深度思考中的知识点————Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
一、背景介绍
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法。
这种开发存在的问题是 new 的类实例不便于统一管理,spring 提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。
依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。
二、知识剖析
spring有多种依赖注入的形式
1、Setter方法注入
2、构造方法注入
3、静态工厂的方法注入
4、实例工厂的方法注入
其中,用得最多的是1、2 种,多写多练就会非常熟练
三、常见问题
spring 配置文件是什么?
Spring 配置文件是个XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用
什么是依赖注入?
依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。
你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。
什么是bean装配?
装配,或bean 装配是指在Spring 容器中把bean组装到一起,前提是容器需要知道bean的依赖关系,如何通过依赖注入来把它们装配到一起。
什么是自动装配?
Spring 容器能够自动装配相互合作的bean,这意味着容器不需要 constructor-arg 和 property 配置,能通过Bean工厂自动处理bean之间的协作
4、编码实战
5、扩展思考
spring的依赖注入到底有什么优势?
让使用者不需要自己去创建或获取自己的依赖,既然创建或获取的过程不是使用者控制的。
这也就意味着,当我需要切换依赖时,不需要改变使用者的代码。这当然要结合面向接口编程等思想,也许有人要说我一个接口就只有一个实现,何必用接口,我也基本不会去切换自己的实现
说的对,然而就算你只有一个实现。
但是你往往会用到AOP吧,其实用代理对象替换原对象也算是切换了实现。什么日志,权限检查,异常处理等等需求。
6、更多讨论
学员曾添提出,@autowired注解默认按名称装配还是按类型装配。
实际操作演示后发现是按类型装配的。
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:11081435,或者你可以直接点击此链接:http://www.jnshu.com/login/1/11081435