1、Spring框架支持通过JSR-250规范中的@Resource注解实现依赖注入,该注解可用于类的字段或Bean属性的setter方法。此注解在Java EE 5与6版本中被广泛应用,例如在JSF 1.2的托管Bean或JAX-WS 2.0服务端点中均可见其身影。Spring不仅实现了对该标准的支持,还将其功能拓展至由Spring容器管理的所有Bean,使开发人员能够在更广泛的场景下使用统一的注入方式,增强代码的可读性与配置灵活性。
2、@Resource注解默认按照名称(by name)进行Bean的匹配与注入,Spring会将该注解所指定的名称作为要注入的Bean在容器中的ID进行查找和绑定。
3、这意味着其工作方式是基于名称语义来完成依赖解析的,具体使用方式如下例所示。
4、当@Resource未显式指定名称时,Spring会自动从字段名或setter方法中推断默认名称:对于字段,直接使用字段名;对于setter方法,则提取其对应的Bean属性名作为查找依据。
5、在以下示例中,Spring容器会将名为 movieFinder 的Bean通过setter方法注入到对应组件中。
6、在该示例中,系统首先尝试查找ID为 customerPreferenceDao 的Bean,若存在则直接注入;若未找到,则退而采用类型匹配机制,查找容器中类型为 CustomerPreferenceDao 的主要Bean并完成注入,从而保障字段的正确初始化和功能可用性。