Spring 补充@Component 和 注入技巧 问题

Spring 补充@Component 和 注入技巧 问题

@Component 的无参构造和有参构造

如果你使用了 @Component 的 Java Bean 中有无参的构造器,或包括无参构造器在内的多个构造器,那么:

Spring 是使用你的『无参构造器』来创建对象,(此时对象的各个属性还没有值),然后再通过『反射』对各个属性赋值。

如果你的类的构造器『只有有参构造器』,而没有无参的构造器,那么,Spring 会调用你有参的构造器去创建这个对象,并同时完成对其属性的赋值。此后,Spring 不再另外对你的属性赋值。

Spring 官方推荐使用有参构造器创建并初始化对象。如果遇到循环依赖问题,使用前面所说的 @Lazy 解决。

三种注入方式的使用技巧

『基于字段的依赖注入』方式有很多缺点,我们应当避免使用基于字段的依赖注入。

推荐的方法是使用『基于构造函数的依赖注入』方式和『基于 setter 方法的依赖注入』方式。

对于『必需的』依赖项,建议使用基于构造函数的注入,以使它们成为不可变的,并防止它们为 null 。

对于『可选的』依赖项,建议使用基于 Setter 方法的注入。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值