본문 바로가기

Java/Spring

[Spring] 컴포넌트 스캔과 주요 애노테이션 정리

  1. @Autowired
    • @Autowired는 스프링에서 의존관계를 자동으로 주입해주는 애노테이션이야. 생성자에 @Autowired를 사용하면 여러 의존관계를 한 번에 주입받을 수 있어. 스프링 컨테이너는 생성자에 지정된 @Autowired를 보고 자동으로 해당 빈을 찾아서 주입해. 주입되는 기본 전략은 타입을 기준으로 같은 타입의 빈을 찾아서 주입하는 방식이야. 파라미터가 여러 개 있어도 스프링이 알아서 다 찾아서 자동으로 주입해줘.
  2. @ComponentScan
    • @ComponentScan이 붙은 클래스는 스프링에서 컴포넌트를 스캔하는 시작점이 돼. 스프링 부트를 사용할 때는 @SpringBootApplication 애노테이션을 주로 사용해. 이 애노테이션을 프로젝트 루트 위치에 두는 것이 일반적이야. 이로 인해, 해당 위치를 기준으로 하위 패키지에 있는 모든 컴포넌트를 자동으로 스캔하고 빈으로 등록할 수 있어.
  3. @Controller
    • @Controller는 스프링 MVC에서 웹 요청을 처리하는 컨트롤러로 인식돼. 웹 애플리케이션 개발 시, 클라이언트의 요청을 받아서 필요한 처리를 하고 그 결과를 반환하는 역할을 해. 주로 클라이언트에게 화면을 반환하거나, API 응답을 처리하는 데 사용돼. MVC 패턴에서 Controller 역할을 담당하며, View와 Model을 연결해주는 역할을 해.
  4. @Repository
    • @Repository는 스프링에서 데이터 접근 계층을 의미해. 주로 데이터베이스와의 상호작용을 담당하는 역할을 해. 이 애노테이션이 붙은 클래스는 스프링이 자동으로 예외 처리를 해주며, 데이터 계층에서 발생하는 예외를 스프링 예외로 변환해서 처리할 수 있게 도와줘. 이를 통해 개발자는 DB 관련 로직에만 집중할 수 있어.
  5. @Configuration
    • @Configuration은 스프링의 설정 정보를 담고 있는 클래스를 나타내. 이 애노테이션이 붙은 클래스는 하나 이상의 스프링 빈을 정의하고, 그 빈들이 싱글톤으로 관리될 수 있도록 도와줘. 주로 @Bean 애노테이션과 함께 사용돼서 스프링이 관리하는 객체를 정의하는 데 쓰이는데, 이를 통해 어플리케이션 전체에 걸친 설정이나 공통적으로 사용되는 빈을 설정할 수 있어.

'Java > Spring' 카테고리의 다른 글

[Spring] 다양한 엔드포인트  (1) 2024.10.15
[Spring] QueryDSL  (0) 2024.10.10
[Spring] 빈 스코프  (0) 2024.10.10
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID)  (0) 2024.09.27
[Spring] 핵심! 객체 지향 프로그래밍  (2) 2024.09.26