1.类注解是添加到某个类上的,⽽⽅法注解是放到某个⽅法上的,如以下代码的实现:
注:方法注解一定要搭配类注解使用,否则会报错
2.重命名Bean
多个重命名,使用多个名称获取的对象都是同一个
3.获取 Bean 对象(对象装配)
获取 bean 对象也叫做对象装配,是把对象取出来放到某个类中,有时候也叫对象注⼊。
对象装配(对象注⼊)的实现⽅法以下 3 种:
- 属性注⼊
- 构造⽅法注⼊
- Setter 注⼊
下⾯我们按照实际开发中的模式,将 Service 类注⼊到 Controller 类中。
4.属性注⼊
属性注⼊是使⽤ @Autowired 实现的,将 Service 类注⼊到 Controller 类中。
Service 类的实现代码如下:
Controller 类的实现代码如下:
运行结果:
5.构造方法注入
运行结果:
注:当一个类中只有一个构造方法的时候,@Autowired 可以省略,有多个构造函数时@Autowired不能省略
6.Setter 注入
运行结果:
7.三种注⼊优缺点分析
- 属性注⼊的优点是简洁,使⽤⽅便;缺点是只能⽤于 IoC 容器,如果是⾮ IoC 容器不可⽤,并且只有在使⽤的时候才会出现 NPE(空指针异常)。
- 构造⽅法注⼊是 Spring 推荐的注⼊⽅式,它的缺点是如果有多个注⼊会显得⽐较臃肿,但出现这种情况你应该考虑⼀下当前类是否符合程序的单⼀职责的设计模式了,它的优点是通⽤性,在使⽤之前⼀定能把保证注⼊的类不为空。
- Setter ⽅式是 Spring 前期版本推荐的注⼊⽅式,但通⽤性不如构造⽅法,所有 Spring 现版本已经推荐使⽤构造⽅法注⼊的⽅式来进⾏类注⼊了。