【发布时间】:2015-07-23 04:09:04
【问题描述】:
将构造函数、字段、设置方法或配置方法标记为自动装配 通过 Spring 的依赖注入工具。只有一个构造函数(在 max) 任何给定的 bean 类都可以带有这个注解,表示 用作 Spring bean 时自动装配的构造函数。这样的构造函数 不必公开。字段在之后立即注入 在调用任何配置方法之前构建一个 bean。这样一个 配置字段不必是公开的。配置方法可能有 任意名称和任意数量的参数;这些论点中的每一个 将使用 Spring 容器中的匹配 bean 自动装配。
Bean 属性设置器方法实际上只是这种情况的一个特例 一般配置方法。这样的配置方法不必是公开的。 在多参数方法的情况下,“必需”参数是 适用于所有论点。如果是集合或地图 依赖类型,容器将自动装配所有匹配的bean 声明值类型。在 Map 的情况下,键必须声明为 类型 String 并将解析为相应的 bean 名称。笔记 实际注入是通过 BeanPostProcessor 执行的 反过来意味着您不能使用 @Autowired 将引用注入 BeanPostProcessor 或 BeanFactoryPostProcessor 类型。请咨询 AutowiredAnnotationBeanPostProcessor 类的 javadoc(其中, 默认情况下,检查是否存在此注释)。
我的问题是:
配置方法是什么意思?
另外,假设我有一个带有
@Autowired的setter 方法和一些带有@Autowired的任意方法。我假设在bean实例化后spring会自动调用setter方法,而不会调用随机命名的@Autowired方法,对吗?Spring 如何理解在实例化(setter)之后应该调用哪个
@Autowired方法,而其他方法不应该?以及这与 javadoc 的声明有何关联,说:
Bean 属性设置方法实际上只是 这么通用的配置方法
最后一个问题:我在哪里可以阅读到它? 因为 Spring 文档没有任何相关信息,而且我无法在其 javadoc 中找到 spring 使用的确切逻辑。
【问题讨论】: