Recipe Name:
Spring recommendation: @(Rest)Controller, @Service, @Repository should be singletons
Description:
Classes annotated with @(Rest)Controller, @Service, @Repository should have a singleton scope
Level:
warning
Language:
- java
Tags:
- web
- framework specific
- Spring Boot
- Spring
- quality
Documentation
Classes annotated with @Controller
, @RestController
, @Repository
or @Service
are singletons by default. Best practices requires them to stay that way.
@Scope("prototype") @Controller public class UserController { }After
@Controller public class UserController { }Resources
Recipe
id: scw:spring:boot:controller-restcontroller-service-repository-should-be-singletons version: 10 metadata: name: 'Spring recommendation: @(Rest)Controller, @Service, @Repository should be singletons' shortDescription: Classes annotated with @(Rest)Controller, @Service, @Repository should have a singleton scope level: warning language: java enabled: true descriptionFile: descriptions/Spring_recommendation____Rest_Controller___Service___Repository_should_be_singletons.html tags: web;framework specific;Spring Boot;Spring;quality search: annotation: in: typeDeclaration: annotation: type: reference: matches: Controller|RestController|Repository|Service checkInheritance: true type: Scope without: parameters: - value: value: stringified: singleton availableFixes: - name: Remove the annotation (defaults to singleton scope) actions: - remove: target: self