1. @Required
- @Required注解适用于bean属性的setter方法
- 这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义或通过自动装配一个明确的属性值
2. @Autowired
- 可以将@Autowired注解为“传统”的setter方法
- 可用于构造器或成员变量
- 默认情况下,如果因找不到合适的bean将会导致autowiring失败抛出异常,可以通过下面的方式避免
- 每个类只能有一个构造器被标记为required=true
- @Autowired的必要属性,建议使用@Required注解
- 可以使用@Autowired注解哪些众所周知的解析依赖性接口,比如:BeanFactory,ApplicationContext, Environment, ResourceLoader, ApplicationEventPublisher,and MessageSource
- 可以通过添加注解给需要该类型的数组的字段或方法,以提供ApplicationContext中的所有特定你类型的bean
- 可以用于装配Key为String的Map
- 如果希望数组有序,可以让Bean实现
org.springframework.core.Ordered
接口或使用的@Order注解 - @Autowired是由Spring BeanPostProcessor处理的,所以不能再自己的BeanPostProcessor或BeanFactoryPostProcessor类型应用这些注解,这些类型必须通过XML或者Spring的@Bean注解加载