java - Spring构造函数注入(inject)有很多字段

标签 java spring

我有一个有 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/

相关文章:

java - 在 Java 中使用 boolean 值测试 int 变量

java - BeanException 在 Idea IDE 中没有正确解决

java - 应用程序部署在unix环境下的JBoss中时如何实现Spring LDAP身份验证?

spring - Kotlin 无法在使用 @Configuration @EnableWebMvc 注释的类中创建 @Autowired 字段

java - 如何调用名称中带有分隔符的bean进行流动

java - Autowiring 似乎失败

java - Java Spark 中的 `:path-param` 和 `{path-param}` 有什么区别?

java - 广播接收器,¿我做对了吗?

java - 获取值(value)并关闭与 recyclerview 和自定义适配器的对话框

java - 我应该将凭证 : application. 属性与系统环境变量放在哪里