반응형

 

@ComponentScan 이란,

Spring에서 프레임워크가 애플리케이션 컨텍스트내에서 빈(구성 요소)를 자동으로 검색하고 등록할 수 있도록 하는 기능이다.

결국, 구성파일에서 각 빈을 명시적으로 정의할 필요가 없어 구성 프로세스가 간소화 된다.

 

@ComponentScan 주석을 활용해서 스캔할 기본 패키지를 지정할수 있다.

이 주석이 달린 클래스의 같은 패키지의 하위 파일들을 모두 Spring 에서 스캔하여

클래스의 인스턴스를 만들고 응용 프로그램 컨텍스트에 추가한다.

 

@ComponentScan의 위치

@SpringBootApplication주석의 하위에 위치되어 있어

@SpringBootApplication을 사용하면 @ComponentScan주석도 사용이 가능해진다.

 

 

ComponentScan의 장점

결국 bean에 따로 정의하지 않아도 되는 수동 작업을 줄여 구성 프로세스가 간소화 된다는 장점이 있다.

 

컴포넌트 스캔은 주석의 개념을 기반으로 관리할 후보에게 특정 주석으로 클래스에 주석을 달수 있다.

대표적으로는 @Component가 있지만

특수 버전인 아래와 같은 주석들도 있다.

 

 


 

1. @Controller  :  클래스를 컨트롤러로 표현하는데 사용한다.

Cotroller는 들어오는 HTTP요청을 처리하고 이에대한 적절한 응답을 생성한다.(return활용)

스프링에서 사용하는 코드의 모습 

@Controller

public class UserController{

             //Controller code...

}


2.Service : Spring에서 클래스를 서비스 구성요소로 표시하는데 사용한다.

서비스 구성요소는 비즈니스 논리를 캡슐화하고, 데이터 조작, 계산, 외부 시스템과의 상호 작용과 같은 작업 수행

웹 레이어에 직접 연결되지 않은 비즈니스별 작업을 구현하는데 사용한다.

스프링에서 사용하는 코드의 모습 

@Service

public class UserService{

               //Service code...

}

 


3.Repository : Spring에서 클래스를 Repository로 표시하는데 사용한다.

Repository는 데이터 엑세스 및 지속성을 담당하고 데이터베이스와 같은 기본 데이터 소스 사이에 추상화 계층을 제공한다.

일반적으로 CRUD(create,Read,Update,Delete) 작업, 기타 데이터 엑세스 방법을 제공한다.

@Repository

public class UserRepository{

                  //Repository code...

}

 

 

 

반응형

+ Recent posts