스프링의 @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. ![]()