我有一个有 8 个成员的 Spring 组件。
我目前正在通过字段注入(inject) Autowiring 这 8 个成员。
我现在想让这些成员成为私有(private)最终成员,并进行构造函数注入(inject)来设置它们。
这很容易做到,但现在我有一个带有 8 个参数的组件构造函数。
我知道我可以使用 setter 注入(inject)并在 XML 文件中设置这些值,但我不想这样做。
还有其他选择吗?
编辑:
这个组件只做一件事情。但这涉及调用其他几种服务。因此需要进行 8 次注入(inject)
最佳答案
首先,别无选择。
其次,如果一个构造函数有8个参数,那么它的设计不合理。我认为你应该重新考虑类(class)结构和责任。考虑将类拆分为两个或三个单独的 bean 并注入(inject)它们。
如果构造函数有 8 个参数,大多数情况下会违反 SRP(单一职责原则)
关于java - Spring构造函数注入(inject)有很多字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352902/