Spring (二) IOC bean加载及bean依赖设置

本文介绍了Spring如何通过注解进行bean的装配,包括组件扫描和自动装配的过程。主要讲解了@Component、@Autowired注解的作用,以及如何通过@Configuration和@ComponentScan注解开启扫描。同时,文章提到了Java配置类和XML配置文件的使用,以及混合装配的方式。最后,文章提及了面对多个bean的装配选择和第三方库的装配问题。
摘要由CSDN通过智能技术生成

上篇说到,spring就像一个第三方,为你注入你需要的类,而不用自己new,这里就引入了spring是如何发现我们编写的类并进行创建的,又是怎么来判断类与类之间的依赖关系的,并进行注入的。
总的来说,spring提供了三种方式进行类装配:
在XML文件中配置:类的定义和类之间的依赖关系通过xml文件描述,然后spring去加载这个xml文件,来创建bean和他们之间的依赖关系。
在Java配置类中进行配置:专门写一个java配置来描述bean和bean之间的依赖关系,spring通过这个类来进行加载
通过注解的方式配置:通过给类加上注解,spring会扫描所有添加了注解的类,依次创建bean和他们之间的依赖关系

  1. 自动装配
    目前主流的使用是第三种注解的方式,自动装配。因为比较方便,不用去维护xml文件和java类文件。所以先来学习一下通过注解方式。
    通过注解进行装配主要有两个过程:
    组件扫描:spring会扫描所有加了组件注解的类,并生成bean实例
    自动装配:根据注解识别出类之间的依赖关系,进行依赖bean的注入。
    下面通过一个小例子来说一下这个过程:
    同样,以上面的国王和将军来做例子,先来看将军,定义一个将军的接口;
    在这里插入图片描述
    然后创建一个他的实现类:
    在这里插入图片描述
    注意到这个类上面加了一个@Component,这个类的作用就是标识我是一个组件类, spring在启动的时候,会对扫描所有的类,当扫描到类使用这个注解进行标识的时候,就要对其进行装载。
    不过默认情况下,spring启动的时候是不会对类进行扫描的,所以必须通过配置开启扫描功能,开启的方式其实也是对应之前的另外两种装配方式:
    一、在一个java配置类中开启,如下:
    在这里插入图片描述
    这里先不关心类里面的内容,先来看看他的两个注解。
    第一个注解@Configuration表示当前类是一个配置类,用于配置spring扫描、装配信息的一个单独的java类。
    第二个注解@ComponentScan就代表开启了扫描功能,如果不进行其他的配置,spring会默认扫描与当前这个类所处同一包下的所有类,并进行自动装配。
    二、通过xml文件进行配置。
    通过在spring的配置文件中设置context标签的组件扫描功能,即可开启:
    在这里插入图片描述
    并且base-package中配置了在扫描的范围是在 com.springIOC这个包下。
    通过java配置类的方式同样也可以设置扫描的范围:
    在这里插入图片描述
    也可以设置多个包:
    在这里插入图片描述
    除了可以在注解中设置包以外,还可以设置类:
    在这里插入图片描述
    它会告诉,spring在扫描的时候扫描General.class类所在的包。
    一般我们不会采取设置类这样的方式,因为如果有个时候这个类突然被删掉了,这里就会出错。当然你也可以在包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值