在尝试使用Spring.NET中集合的问题时,我发现Spring可以使用私有setter注入依赖项。我有两个问题:
- 这里有文档吗?
- 推荐使用私有setter吗?
文档说:
基于setter的DI是通过调用对象上的setter方法实现的...
当然,它没有明确说明public setter方法,但这是我一直以来的假设。我正在使用.NET 3.5上的版本1.0.2。
在尝试使用Spring.NET中集合的问题时,我发现Spring可以使用私有setter注入依赖项。我有两个问题:
文档说:
基于setter的DI是通过调用对象上的setter方法实现的...
当然,它没有明确说明public setter方法,但这是我一直以来的假设。我正在使用.NET 3.5上的版本1.0.2。
Don,
据我所知,这并没有记录在文档中 - 主要是因为我们不建议使用它。该功能存在是为了支持处理遗留/第三方库的罕见边缘情况。
您应该仅使用公共设置器,您也可以从单元测试中调用它们!
希望有所帮助, Erich
Spring 的 Java 版本使用反射机制,可以访问那些私有的 setter 方法。这是很好的,因为你不想强迫某人改变一个不可变对象只是为了满足 Spring。
个人而言,我喜欢尽可能使用构造函数注入。