IOC与DI

        为实现低内聚高耦合的设计,spring便引入了IOC跟DI

1.什么是ioc

        ioc就是一个巨大的容器,里面保存很多对象的实例,主要设计ioc控制反转,即将对象的创建的控制权交给ioc,由ioc管理bean的创建及管理,ioc容器创建的对象叫做bean对象。

       那么怎么能将其加入到ioc容器中,那么就需要在类上加上@Component,为了更好的区分这个bean来自哪一层,又引入了

  • @Controller (标注在控制层类上)

  • @Service (标注在业务层类上)

  • @Mapper(标注在数据访问层类上)

        那么我加入到了ioc容器中我如何实现将bean引入到我的类中去呢?那么便需要用到DI了。

2.什么是DI

        DI就是依赖注入,是指IOC容器要为应用程序去提供运行时所依赖的资源,而资源指的就是对象。

        @Autowired注解,默认是按照类型进行自动装配的(去IOC容器中找某个类型的对象,然后完成注入操作),思维比骄傲活跃的可能会发现了,万一ioc中有两个类型相同的bean呢?当然你能想到的spring早就想了针对上述问题Spring提供了以下几种解决办法

  • @Primary

  • @Qualifier

  • @Resource

        假如我有两个bean都继承了demoService,一个是service1一个是service2倘若我需要的是service1便使用@Primary注解添加上那么就默认指定依赖注入service1.

        @Qualifier指定要注入bean的名称

@Qualifier注解不能单独使用,必须配合@Autowired使用

        使用@Resource注解:是按照bean的名称进行注入。通过name属性指定要注入的bean的名称。

     @Autowired跟@Resource区别就是前者首先根据类型注入,后者首先根据名称注入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值