Spring & JPA

@RestController와 @ComponentScan의 범위

rolling27 2021. 8. 18. 07:29

@RestController는 스프링 4부터 지원한다.

REST방식의 응답을 처리하는 컨트롤러를 구성할 수 있다.

@Controller를 사용하면 해당 문자열에 대한  View를 만들어야 한다.

 

@RestController는 리턴되는 문자열이 그대로 브라우저에 출력이 되므로 View 화면을 만들지 않아도 된다.

 

문자열, 객체, 컬렉션을 리턴할 수 있다.
문자열 리턴
객체리턴
컬렉션 리턴

문자열은 그대로 화면에 출력하고

 

객체와 컬렉션의 경우 JSON 데이터로 변환하여 출력한다.


@ComponentScan의 범위

ComponentScan이 속한 패키지 및 하위 모든 패키지를 스캔한다.

 

@SpringBootApplication을 살펴보면 다음과 같다.

여러가지 Annotation을 포함하는 @SpringBootApplication

기본적으로 프로젝트를 생성하면 @ComponentScan이 패키지 상위에 설정이 된다고 볼 수 있다.

패키지를 의도적으로 다른 곳에 두지 않는 한 프로젝트 진행을 하면

@Component들이 자동으로 빈에 등록이 될 것이다. 

해당 범위에 없는 클래스를 포함시키려면 다음과 같이 지정해줄 수 있다.

예: @ComponentScan(basePackages = {"패키지명", "패키지명"}

excludeFilters를 사용해서 스캔 대상에서 제외시킬 수도 있다.

 

 

'Spring & JPA' 카테고리의 다른 글

[spring boot] path with web-inf or meta-inf  (0) 2021.03.07
Spring Legacy Project가 없을 때  (0) 2021.01.23