스프링의 @Component
, @Controller
, @Service
그리고 @Repository
클래스들은 기본적으로 애플리케이션에서 하나만 인스턴스화 되는 싱글톤 객체입니다.
이러한 클래스들에 다른 Scope 을 정의하게되면, 새 인스턴스가 생성되고 제거될 때 불필요한 변동이 발생합니다.
샤용량이 많은 웹 애플리케이션에서, 이것은 많은 불필요한 서버의 부하를 추가로 일으킬 수 있습니다.
이 룰은 @Scope
어노테이션이 “singleton” 이외의 값으로 @Component
, @Controller
, @Service
또는 @Repository
에 적용될 때 문제를 제기합니다.
@Scope("singleton")
은 불필요하지만, 이 룰에서는 무시됩니다.
규칙을 어긴 코드
@Scope("prototype") // 규칙을 어긴 코드
@Controller
public class HelloWorld {
규칙을 준수한 해결책
@Controller
public class HelloWorld {
If you like SONARKUBE, don’t forget to give me a star.