[Spring笔记] Spring-22-注解开发依赖注入

Spring-22-注解开发依赖注入

1. @Autowired 注解

可以注解在成员变量上,也可以注解在 setter 函数上

默认根据类型装填

@Component
class xxx {
    @Autowired
    Object obj;
}
@Component
class xxx {
    Object obj;
    
    @Autowired
    public void setObj(Object obj) {this.obj = obj;}
}

[注意]

  • 自动装填通过暴力反射对私有成员初始化数据,所有无需 setter
  • 需要无参构造器

2. @Qualifier 注解

用于指定成员的装填类型(bean 的 id),必须配合 @Autowired 一起使用,无法单独使用

@Component
class xxx {
    @Autowired
    @Qualifier("id")
    Object obj;
}

[补充]

  • 当未使用 @Qualifier 注解时,且有两个同类型的 bean,自动装填会将成员变量名作为 id 查找对应的 bean

3. @Value 注解

对简单类型 (值类型) 的成员做初始化操作,无需添加 @Autowired 注解

class xxx {
    @Value("Bob")
    private String name;
}

4. @PropertySource 注解

@PropertySource 注解用于加载 properties 文件,值类型初始值可从加载过的 properties 文件中得到

@Configuration
@ComponentScan("com.xxx")
@PropertySource("classpath:xxxx.properties")
public class SpringConfig {
}
class xxx {
    @Value("${mysql.username}")
    private String name;
}

[注意]

  • 多文件加载可以用数组形式指定路径,无法使用通配符
  • 注意 ${x} 可能会取到系统变量,建议在 properties 中用 xxx.yyy 的形式命名数据

视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix?p=24

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值