深入浅出Spring-IOC

Pandora ·
更新时间:2024-09-20
· 889 次阅读

IOC(Inversion Of Control) 1.概念: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 IoC是一种设计思想。 2.一句话阐述控制反转:

将原本在程序中手动创建对象的控制权,交由Spring框架来管理。

控制指的是创建对象的控制权。

反转指的是将对象控制权完全交由IoC容器,并由IoC来管理对象间的相互依赖关系。

Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

3.简单的生活例子(工厂模式):

假如你现在很想喝可乐,然后你试着去制作一瓶可乐:
是一样的。 @ComponentScan属性basePackages:用于指定要扫描的包。和该注解中的 value属性作用一样。

获取容器:

ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class); 配置注解–@Import 用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。 属性value[]:用于指定其他配置类的字节码。 创建对象注解–@Bean 该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring容器。 属性name:给当前@Bean注解方法创建的对象指定一个名称(与 bean的 id一样)。 默认是当前方法名称。 加载配置文件注解–@PropertySource 此注解用于加载 .properties 文件中的配置。 属性value[]:指定 properties文件位置。如果是在类路径下,需要写上类路径classpath11.XML配置与注解的权衡分析

XML文件配置的优势:不涉及任何源码,修改后,无需重新编译与部署。

注解配置的优势:配置方便简单,维护方便,直接找到类就可以改变相应的配置。

使用场景分析:

如果项目所需的Bean大都来源于第三方,基于XML配置更好。 如果项目所需的Bean大都用户自我开发,基于注释配置更好。 12.IOC优劣势分析 IOC的优势大大降低了程序间的耦合性,将对象交给Spring容器,简化了开发,增强了可维护性。 IOC的一些不足:IOC的核心是反射,反射创建对象一定程度上,还是对效率有一定的影响,但目前影响已经不大,大概1-2倍的差距。

本文暂不涉及Spring IOC实现的源码分析,仅解释了Spring IOC,和怎样去使用Spring IOC,后期会对Spring的IOC相关源码进行分析。

参考书籍:

《Spring实战》第四版 《SSM项目实战》

感谢耐心的你看到了这,再次感谢!

ATFWUS --Writing By 2020–04-20


作者:如颖随心->A



spring ioc

需要 登录 后方可回复, 如果你还没有账号请 注册新账号