首先说下本人对自动装配的理解,自动装配是对于创建对象后对其属性的自动赋值,而其创建对象既可以通过spring-config的xml配置文件创建对象放入spring容器,也可以通过在所需创建对象的类上加入注解@Componet或其衍生类@Service、@Controller和@Repository(spirng2.0版本及之后才能使用该注解创建对象)。
标题中的@AutoWired也是对其属性进行自动赋值的一种方式,需要说明的是, 该注解只能对于非String、集合、数组类型的引用数据类型进行赋值,且spring容器中要存在该引用数据类型的对象或其子类对象才能赋值成功,那么问题来了,它是在什么时候进行的自动装配操作呢?
上代码:
先来看看,这是我定义的一个类,该类上有一个@RestController注解,该注解是合并了@Controller注解和另一个关于请求体的注解。而bookService为一个接口的数据类型变量名
,在IOC容器中已存在它的实现类对象(@Service,上面提到过在spring中创建对象的方式),可使用多态的方式进行了自动装配,另外还定义了一个集合,