스프링 "@Controller" 클래스들은 "@Scope" 를 사용하지 않아야 합니다.

 

스프링의 @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. :star2:

원문으로 바로가기

Star This Project