javaweb08-IOC(依赖反转)和DI(依赖注入)

一、IOC依赖反转

注解说明位置
@Component声明bean的基础注解不属于以下三类,用这个注解
@controller@Component 的衍生注解标注在控制器类上
@Service@Component 的衍生注解标注在业务器类上
@Repository@Component 的衍生注解标注在数据访问类上(由于mybatis整合,用的少)

1.1 理解

1.在controller层上加入注解:@RestController和@controller,其中@RestController = @Controller + @ResponseBody。
2.在Service层上加入注解:@Service//意味着将当前这个实现类交给IOC容器管理,成为IOC容器中的Bean对象。
3.在Dao层上加入注解:@Component将当前类交给IOC容器管理,成为IOC容器中的bean。component没问题,但是可以用更符合它的,这一层是dao层,对应Repository

1.2 注意

1.声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写
2.在springboot集成web开发中,声明控制器bean时要用@Controller。

二、DI依赖注入

在使用@Autowired注解的时候,默认是按照类型进行,如果存在多个相同类型的bean,则通过下面的方式解决。
在这里插入图片描述

Autowired:默认按照类型装配。也就是要去IOC容器中赵这个类型的Bean对象,然后完成注入。
若存在多个同类型Bean

解决方式①:@Primary,下面的EmpServiceA和EmpServiceB,想要哪一个给哪一个上面加入@Primary。

在这里插入图片描述

解决方式②:在需要注入的层,加入@Qualifier注解并结合@Autowired。(两者结合)

在这里插入图片描述

解决方式③:只用@Resource,name参数输入需要的Bean名字。
在这里插入图片描述

注意:
Autowired默认按照类型注入;而resource默认按照名称注入。

Autowired是spring框架提供的注解;而resource是jdk框架提供的注解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值