spring自动注入模型

本文介绍了Spring的自动注入模型,包括autowire_no、autowire_name、autowire_type和autowire_constructor四种方式。重点讲解了autowire_name通过set方法按名称注入,autowire_type通过参数类型注入,以及autowire_constructor通过构造器注入的工作原理。通过自定义beanFactoryPostProcessor演示了如何改变自动注入模型,并展示了不同模型下的注入行为。
摘要由CSDN通过智能技术生成

spring的注入,可以分为两种,分别是手动注入和自动注入
我们这里要记录的是自动注入

自动注入模型

spring的自动注入模型有四种,分别是:

  • autowire_no(0): 默认的装配模式,如果注入indexBean,没有在属性上加@Autowired或者@Resource,这时候,indexBean是无法注入的
  • autowire_name(1): 通过set方法,并且set方法的名称必须和bean的name名称一致, byName
  • autowire_type(2): 通过set方法,这种方式set方法可以任意命名,因为是按照set方法的参数类型来注入bean的, byType
  • autowire_constructor(3): 通过构造器注入,如果userBean中注入了indexBean,那么必须提供一个带indexBean的构造函数,否则是null

spring默认的自动注入模型,是0,需要通过@Autowired或者@Resource注解注入;如果是非0的,可以不提供这两个注解;

应用

autowire_name

如果我们指定的自动注入模型是autowire_byname的话,那只需要提供set方法即可,并且set方法的方法名必须是注入属性的值,否则会无法注入

@Component
public class IndexBean {
   
}

@Component
public class UserBean {
   

    private IndexBean indexBean;

    public void setIndexBean123(IndexBean indexBean) {
   
        System.out.println("通过set方法注入属性");
        this.indexBean = indexBean;
    }

    public void setIndexBean(IndexBean indexBean){
   
        System.out.println("空参setIndex方法执行")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值