如果Service有多个实现类,Spring怎么知道该注入哪个实现类

Service 有多个实现类该怎样解决

  • Controller 中注入 service 的时候使用 @Autowired 自动注入,使用注解 @Qualifier(value = "beanId") 来指定注入哪一个
  • Controller 中注入 service 的时候使用 @Resource(type = 类名.class) 来指定注入哪一个
  • 每个 service 的实现类都可以指定名称(使用 @Service(value = “名称”)),Controller 中注入 service 的时候使用名称来指定注入哪一个(使用@Resource(name = "名称")

@Autowired 注解的作用

  • @Autowired 翻译为自动装配,我们常称之为依赖注入,简称注入
  • 依赖注入与自动装配的关系:依赖注入的本质就是装配,装配是依赖注入的具体行为
  • @Autowired 注解的作用:当 Spring 发现 @Autowired 注解时,会自动在 IOC 容器中找到和其匹配(默认是类型匹配)的 bean,并自动注入到相应的地方去

@Autowired@Resource 区别

  • @AutowiredSpring 的注解,@ResourceJ2EE 的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
  • @Autowired 默认按照 byType 方式进行 bean 注入,@Resource 默认按照 byName 方式进行 bean 注入
  • @Autowired 默认情况下必须要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false,如:@Autowired(required=false)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值