Spring注解开发中的@AutoWired的执行时机

本文探讨了Spring框架中@AutoWired注解的自动装配原理和执行时机。@Autowired能对非String、集合、数组类型的引用数据类型进行赋值,要求容器中有相应对象或其子类。通过一个@RestController的例子,展示了当尝试使用@Autowired装配接口类型属性并调用其方法时,如果未正确装配会导致空指针异常。结论是,自动装配发生在对象创建和属性初始化之后。
摘要由CSDN通过智能技术生成

        首先说下本人对自动装配的理解,自动装配是对于创建对象后对其属性的自动赋值,而其创建对象既可以通过spring-config的xml配置文件创建对象放入spring容器,也可以通过在所需创建对象的类上加入注解@Componet或其衍生类@Service、@Controller和@Repository(spirng2.0版本及之后才能使用该注解创建对象)。

        标题中的@AutoWired也是对其属性进行自动赋值的一种方式,需要说明的是, 该注解只能对于非String、集合、数组类型的引用数据类型进行赋值,且spring容器中要存在该引用数据类型的对象或其子类对象才能赋值成功,那么问题来了,它是在什么时候进行的自动装配操作呢?

        上代码:        

         

 先来看看,这是我定义的一个类,该类上有一个@RestController注解,该注解是合并了@Controller注解和另一个关于请求体的注解。而bookService为一个接口的数据类型变量名

,在IOC容器中已存在它的实现类对象(@Service,上面提到过在spring中创建对象的方式),可使用多态的方式进行了自动装配,另外还定义了一个集合,࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值