1、@Required 注释适用于bean属性setter方法,如下面的例子:
2、此批注指示必须在配置时通过bean定义中的显式属性值或通过自动装配填充受影磨蓄贺痞响的bean属性。如果尚未填充受影响的bean属性,则容器将引发异常。这允许急切和明确的失败,以后避免NullPointerException 实例等。
3、将 @Autowired 注释应用于构造函数,如以下示例所示:
4、还可以将 @Autowired 注释应用于“传统”setter方法,如以下示例所示:
5、您还可以将注释应用于具有任意名称和多个参数的方法,如以下示例所示:
6、也可以应用于 @Autowired 字段,甚至可以将其与构造函数混合使用,如下例所示:
7、还可以 ApplicationContext 通过将注释添加到需要该类型数组的字段或方法来提供特定类型的所有bean ,如以下示例所示
8、同样适用于类型化集合,如以下示例所示:
9、Map 只要预期的密钥类型是,即使是类型化的实例也可以自动装洧粽袄淖配 String 。Map值包含所有期望类型的bean,并且键包含相应的bean名称,如以下示例所示:
10、默认情况下,只要零候选bean可用,自动装配就会失败。默认行为是将带注释的方法,构造函数和字段视为指示所需的依赖项。您可以在以下示例中更改此行为:
11、可以通过Java 8表达特定依赖关系的非必需特性 java.util.Optional ,如以下示例所示:
12、从Spring Framework 5.0开始,您还可以使用 @Nullable 注释(任何包中的任何类型的注释 - 例如, java旌忭檀挢x.annotation.Nullable 来自JSR-305):