Programming/스프링(spring) - Enterprise

스프링(spring)/ 다듬기 2(어노테이션에 대한 고찰)

esoog Polaris 2023. 8. 15. 21:55
반응형

@어노테이션(Anotation) : 자바 프로그래밍 언어에서 메타데이터(metadata)를 표현하는 방법 중 하나. 메타데이터란 코드 자체가 아니라 코드를 해석하고 처리하는 데 도움을 주는 정보를 의미합니다. 어노테이션은 주로 클래스, 메서드, 필드 등의 요소에 부가적인 정보를 제공하거나 처리를 지시하는 데 사용됩니다. 스프링 프레임워크 및 다른 프레임워크에서는 어노테이션을 활용하여 코드의 의미를 확장하고 설정을 간소화하는 등의 목적으로 활용


 

1. @Controller:
   - `@Controller` 어노테이션은 Spring MVC에서 컨트롤러 클래스임을 나타내는 데 사용됩니다.
   - 이 어노테이션을 사용하여 클래스를 스프링 빈으로 등록하면, 해당 클래스는 HTTP 요청을 처리하는 컨트롤러 역할을 할 수 있습니다.

 


2. @RequestMapping:
   - `@RequestMapping` 어노테이션은 컨트롤러의 메서드에 사용되며, 해당 메서드가 어떤 URL에 매핑되는지 정의합니다.
   - 요청 URL과 컨트롤러 메서드를 매핑시킴으로써 해당 URL로 들어오는 요청을 처리할 수 있습니다.

 


3. @GetMapping:
   - `@GetMapping` 어노테이션은 HTTP GET 요청을 처리하는 메서드를 정의할 때 사용됩니다.
   - `@RequestMapping(method = RequestMethod.GET)`의 축약형으로, 주어진 URL에 GET 요청이 들어오면 해당 메서드가 호출됩니다.

 


4. @PostMapping:
   - `@PostMapping` 어노테이션은 HTTP POST 요청을 처리하는 메서드를 정의할 때 사용됩니다.
   - `@RequestMapping(method = RequestMethod.POST)`의 축약형으로, 주어진 URL에 POST 요청이 들어오면 해당 메서드가 호출됩니다.

 


5. @ResponseBody:
   - `@ResponseBody` 어노테이션은 스프링 컨트롤러의 메서드에 적용되며, 메서드가 리턴하는 값을 HTTP 응답 본문으로 사용하도록 지시합니다.
   - 주로 JSON 형태로 데이터를 반환할 때 사용되며, 객체나 컬렉션을 직렬화하여 응답 본문에 포함시킵니다.

 


6. @Autowired:
   - `@Autowired` 어노테이션은 스프링 빈 간의 의존성을 주입하기 위해 사용됩니다.
   - 필드, 생성자 또는 메서드 매개변수에 적용하여 해당 타입의 빈을 찾아 자동으로 주입합니다.

 


7. @RequestParam:
   - `@RequestParam` 어노테이션은 웹 요청의 파라미터 값을 메서드 매개변수에 바인딩하기 위해 사용됩니다.
   - 주로 URL 쿼리 파라미터를 메서드 인자로 전달받을 때 사용됩니다.

 


8. @Repository:
   - `@Repository` 어노테이션은 데이터베이스나 데이터 접근 계층(DAO)에서 사용되는 스프링 빈을 정의할 때 사용됩니다.
   - 주로 데이터베이스 관련 작업을 처리하는 클래스에 적용되며, 데이터베이스 예외를 스프링의 일반적인 예외로 변환해줍니다.

 


9. @Override:
   - `@Override` 어노테이션은 메서드가 상위 클래스나 인터페이스의 메서드를 오버라이딩함을 나타냅니다.
   - 컴파일러에게 해당 메서드가 오버라이딩 관계에 있는지를 확인하도록 지시합니다.

 

 

10. @SpringBootApplication:
   - `@SpringBootApplication` 어노테이션은 스프링 부트 애플리케이션의 메인 클래스에 적용되며, 다음 세 개의 어노테이션을 포함한 복합 어노테이션입니다: `@Configuration`, `@EnableAutoConfiguration`, `@ComponentScan`.
   - 스프링 부트 애플리케이션을 실행하기 위한 기본 설정과 컴포넌트 스캔을 수행합니다.

 


11. @ComponentScan:
   - `@ComponentScan` 어노테이션은 지정된 패키지와 그 하위 패키지를 스캔하여 스프링 빈을 찾도록 지시합니다.
   - 스프링 컴포넌트 어노테이션(`@Component`, `@Service`, `@Repository`, `@Controller` 등)이 적용된 클래스를 스캔하여 빈으로 등록합니다.
   - 특정 패키지를 지정하지 않으면 `@ComponentScan`은 현재 위치한 패키지에서부터 시작합니다.
 

728x90