@어노테이션(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`은 현재 위치한 패키지에서부터 시작합니다.
'Programming > 스프링(spring) - Enterprise' 카테고리의 다른 글
스프링(spring)/ 스프링부트(springBoot) JAR 패키징 (0) | 2023.08.23 |
---|---|
스프링(spring)/ War, Jar(package type) (0) | 2023.08.23 |
스프링(spring)/ 스프링부트(springBoot)-mysql연동 (0) | 2023.08.15 |
스프링(spring)/ 스프링부트(Spring Boot) 프로젝트 생성 (0) | 2023.08.15 |
스프링(spring)/ 다듬기 1(MVC에 대한 고찰) (0) | 2023.08.09 |