SpringBoot@Autowired使用详解及实例演示

前面介绍过通过@Import/@ComponentScan+@Component/@Bean/实现FactoryBean接口四种方式可以把bean加到spring的ioc容器中来。

而@AutoWired注解则可以为这些加到容器中的实例的变量,参数,方法进行自动赋值。

主要知识点:

1.@Autowired 默认时根据类型来赋值的,可以使用@Bean(autowire = Autowire.BY_NAME)修改成按照名字来装配。

2. 当在spring容器中有多个类型相同的时候实例时,我们可以在备选的bean上面加上@Primary注解来标识优先选择。

3. 当在spring容器中有多个类型相同的时候实例时可以用@Qualifier指定按名称装配。

4. @Autowired可以放在方法的参数前,当该方法所属的类被初始化时该方法会自动被调用,会自动的给参数赋合适的值。

5. @Autowired可以放在方法上,当该方法所属的类被初始化时该方法会自动被调用,所以可以用它来为某些变量赋值。

6. 当变量上的被@Autowired注解时,如果从spring 容器中找不到合适值来注入时会报错,为了不报错我们可以使用注解@Autowired(required = false),这样有合适的就会注入,没有则放弃,不会报错。

7. @Autowired是spring自带的,@Inject是JSR330规范实现的,@Resource是JSR250规范实现的,需要导入不同的包。

可以了解的知识:@Inject @Inject是默认按照类型匹配的 ,@Inject和@Name一起使用 @Autowired如果需要按照名称匹配需要和@Qualifier,@Resource @Resource是按照名称匹配的

8.@Autowired可以注解到在构造器上。我没有实验成功,稍后再试试。

为了在例子长包含上面说到的所以情况, 下面定义了一个call special srevice的例子,具体类图如下:

首先定义两个接口BeautyGril 漂亮小姐姐和GentleGril 温柔小姐姐。

package com.allen.trainning.spring.autowi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值