SpringIOC总结概括

目录

一.简单了解何为IOC:

二.SpringIOC的一种实现方式——DI注入:

三.di注入的注解实现和xml实现:

(1)xml实现:

(2)注解实现(主流用法):

四.总结:


一.简单了解何为IOC:

IOC是spring中的一种容器,用于存储和拿取对象,IOC中的对象元素称之为bean,通过IOC容器可以实现对象实例化时的控制反转,就是将何时实例化,怎么实例化这个过程和实现交给IOC来处理,以此实现一种“自动实例化”,同时,还可以降低程序间的耦合性。

二.SpringIOC的一种实现方式——DI注入:

IOC是一种Spring中的思想,而DI是一种实现方式,它可以将依赖对象取出并赋值给对应属性。

三.di注入的注解实现和xml实现:

(1)xml实现:

第一种——setter注入:

<bean id="rename" class="path">
    <property name="set_method_Name" ref="beanName"/>
</bean>

上述代码中ref表示的是,实例化当前bean时,你设置的id名是什么,注意,是实例化bean的,而不是setter注入的这个bean的id,因为,要想实现注入,就要先实例化,所以在注入前,还有一个实例化的配置代码,不过此处我没有写。其次,setter注入要求,实例化的当前类,必须要有set方法。name代表的就是set方法的名字,但是需要注意的是,要去掉名字里的“set”然后首字母小写。 

第二种——构造方法注入:

<bean id="rename" class="path">
    <constructor-arg name="构造方法传入的形参名" ref="beanName"/>
    <!-- 或 -->
    <constructor-arg type="parameterType" ref="beanName"/>
</bean>

此种方法与setter注入类似,ref含义相同,所以二者的前提也一样。 

第三种——集合注入:

<bean id="rename" class="path">
    <property name="set_method_Name">
        <set_method_Name>
            <value>......</value>
            <value>......</value>
            <value>......</value>
            .......
        </set_method_Name>
    </property>
</bean>

 当要注入的属性为一个集合类时使用,name属性的命名规则与setter注入的一致。

(2)注解实现(主流用法):

无论是注解实现还是xml实现,它们的背后原理都是一样都是将控制权反转交给spring来管理,所以,要想用注解的方式实现di,也同样需要先创造一个bean,而创建一个bean,就需要用到常说的五大类注解了——@Component、@Controller、@Configuration、@Service、@Repository,这五大类注解的本质功能完全一致,之所以会有五个,是因为在真正的业务环境中,每一种逻辑都会有不同的层,分出多个注解,更容易区分,其中@Component标签是最基础的,另外四个标签均包含着@Component。

通过以上五大类注解,我们就相当于创建了一个bean,不过它们并不是只有这一种形态,它们也可以接收参数,具体用法有很多,这里就不一一列举了,用的时候也有提示,自然就知道了。

不过这里要注意一点,在spring当中,@Component要想发挥作用,还需要单独创建一个扫描类,并添加@Configuration和@ComponentScan,并在@ComponentScan标签中传入要扫描的包或类路径。但是在SpringBoot当中是不需要的,有启动类即可。

上面将bean创建好之后,接下来就是di了,而di也是用标签来实现的——@Autowired或@Resource。只需要将这两个标签中的一个加在要注入的属性上即可。而这两个标签的区别在于,对于@Resource而言,它是Java本家的,适配性更高,而对于@Autowired,它则是由spring提供的,在一些特殊情况下可能会出现问题。除了这两个之外,当注入对象是一个简单类型时,比如String、int等,可以使用@Value注解进行快速赋值。(具体用法本章不做阐述以后会补充。)

除此以外,在实际开发中,我们还可能遇到需要管理第三方bean的情况,这时,我们就需要用到@Bean标签,将它加到需要管理的第三方方法上,表明该方法的返回值是一个bean。此时,我们就可以通过IOC容器成功获取到这个第三方的bean了。

四.总结:

这里再次总结一下,什么是IOC,对于SpringIOC而言,它是众多框架的基石,所以理解它的概念要比掌握那些标签更加重要:

IoC(Inversion of Control,控制反转)是 Spring 框架的核心概念之一,它是一种设计原则和编程模式,用于实现松耦合和可测试的应用程序。在传统的编程模式中,对象之间的创建、组装和管理都是由开发人员手动完成的,而在 IoC 模式下,这些责任被委托给一个容器来管理。

在 IoC 模式中,对象之间的依赖关系被反转了,即由开发人员手动控制对象之间的依赖关系变为由容器自动注入依赖。这种反转的控制使得应用程序的各个模块之间解耦,提高了代码的灵活性、可维护性和可测试性。

IoC 的实现依赖于一个称为 IoC 容器的组件。IoC 容器负责创建和管理对象,以及解决对象之间的依赖关系。开发人员只需在配置文件(如 XML 配置文件)或使用注解方式中指定对象的依赖关系和其他配置细节,容器就会根据这些配置信息动态地实例化对象、注入依赖并管理对象的生命周期。

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值