重复的@Autowired bean块

时间:2016-05-26 15:35:23

标签: spring spring-mvc

我有一个spring MVC应用程序。应用程序的每个控制器都会自动连接它需要与之交互的@Autowired组件。 Sonarqube分析检测到存在一些重复:某些控制器可能使用相同的服务,在这种情况下@Autowired private FooService fooService; @Autowired private BarService barService; 注释和相应的字段确实相同。

例如,以下内容将在许多控制器中重复:

AbstractController

这是一个小问题,我不知道是否应该解决这个问题。由于我的所有控制器都继承了@Autowired,并且所有服务都是单例,所以在受保护的字段中将所有{{1}}元素放在基类中是否有意义?

1 个答案:

答案 0 :(得分:1)

如果依赖项已经在子类中,那么您可能有理由这样做,例如:它们在概念上不属于抽象类。如果是这样,请将它们保留在子类中。

遵守DRY原则很重要,但不要对此感到痴迷。复制代码为您提供了灵活性,类依赖性是您需要这种灵活性的典型位置。更不用说代码更简单了这种重复。

静态代码分析有助于提供改进代码的指针,但不应盲目跟踪它们。