Ich habe eine Feder MVC-Anwendung. Jeder Controller der Anwendung verdrahtet automatisch die @Service
Komponenten, mit denen er interagieren soll. Eine Sonarqube-Analyse hat festgestellt, dass es zu einer Duplizierung kam: Einige Controller verwenden möglicherweise die gleichen Dienste. In diesem Fall sind die @Autowired
Annotation und die entsprechenden Felder in der Tat identisch.Dublierte Blöcke von @Autowired Bohnen
Zum Beispiel die folgenden wäre in vielen Controllern dupliziert werden:
@Autowired
private FooService fooService;
@Autowired
private BarService barService;
Dies ist ein kleines Problem ist, und ich weiß nicht, ob/wie ich diese Adresse sollte. Da alle meine Controller eine AbstractController
erben, und alle Dienste sind Singletons, würde es Sinn machen, alle @Autowired
Elemente in der Basisklasse in geschützten Feldern zu setzen?
Sie machen einen guten Punkt, und ich denke, dass Konsistenz in der Tat wichtig ist. Das gab mir auch einige Denkanstöße - Verfahrensdesign vs. OO-Prinzipien. Danke für deine Antwort. – Elegie