java - Spring getter 和 setter 依赖?

标签 java spring inversion-of-control setter getter

我想确认一下我的理解是否正确。 Spring需要一个setter来注入(inject)字段引用吗?难道仅仅将其检测为公共(public)字段就不能做到这一点吗?

有没有替代方案。据我了解,Java EE 的 @Inject 注释可以毫无问题地做到这一点。但我一直更倾向于Spring。

最佳答案

这取决于您创建 bean 的方式。 Spring 不需要 setter。还有许多其他方法:

  • 通过字段级别的注释 Autowiring (带或不带限定符)
  • 构造函数注入(inject)(通过 xml 或代码中的注释)

公共(public)字段(如您所建议的)可能会起作用,尽管我从未尝试过,并且即使它起作用也会建议不要这样做。

不幸的是,XML 方法不会研究私有(private)字段(据我所知)。您需要添加 setter、使用构造函数或设置某种 Autowiring 。

请记住, Autowiring 可以与 XML 结合使用。即使您通过 xml 创建 bean(而不是 @Component 和组件扫描之类的东西),Spring 也会关注您的接线注释。

关于java - Spring getter 和 setter 依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022702/

相关文章:

Java Spring IOC bean创建值(value)

java - Object 类型的 Finalize() 方法不可见?

java - 如何在 SWT 中使用默认应用程序打开文件?

java - 每次使用 Log4j 运行我的 Java 程序时,如何重新创建日志文件?

生产方式中的 Java 和 GeoLite 数据库 : How to use GeoLiteCity. dat?

java - JUnit |模拟服务器|休息模板

c#-4.0 - 这是从域模型中实例化具有依赖关系的对象的正确方法吗?

java - 无法创建 Kafka Consumer

java - MyBatis 查询中的参数未被替换

c# - IOC 容器 - WCF 服务 - 我应该通过构造函数实例化所有依赖项吗?