1️⃣ Java 기반 컨테이너 설정방법 (어노테이션 활용)
Java 기반의 컨테이너 설정 방법 중 어노테이션을 활용한 것은 스프링 프레임워크에서 제공하는 애노테이션 기반의 설정 방법이다.
2️⃣ 스프링 프레임워크에서는 아래와 같은 어노테이션들을 제공한다.
- @Component: 해당 클래스를 빈으로 등록.
- @Repository: DAO(Data Access Object) 클래스를 빈으로 등록.
- @Service: 서비스 클래스를 빈으로 등록.
- @Controller: 컨트롤러 클래스를 빈으로 등록.
- @RestController: RESTful 웹 서비스를 처리하는 컨트롤러 클래스를 빈으로 등록.
- @Configuration: 설정 클래스를 나타내며, 빈을 등록하고 설정하는 메서드를 포함.
- @Bean: 해당 메서드가 빈을 반환하는 메서드임을 나타낸다.
- @Autowired: 빈 간의 의존성을 자동으로 주입.
- @Qualifier: 같은 타입의 빈이 여러 개인 경우, 어떤 빈을 사용할지 지정.
- @Value: 프로퍼티 값을 주입.
- @Profile: 빈을 활성화할 프로파일을 지정.
- @Scope: 빈의 스코프를 지정.
- @RequestMapping: 요청 URL과 매핑할 메서드를 지정.
- @PathVariable: 요청 URL에서 경로 변수를 추출.
- @RequestParam: 요청 파라미터를 추출.
- @RequestBody: 요청 본문을 객체로 변환.
- @ResponseBody: 메서드가 반환하는 객체를 응답 본문으로 변환.
- @ResponseStatus: 응답 상태 코드를 지정.
- @ExceptionHandler: 예외 처리 메서드를 지정.
- @Async: 비동기적으로 메서드를 실행.
위에 어노테이션들을 사용하여 빈을 등록하고, 의존성을 주입하는 등의 설정을 할 수 있다.
예를들어 @Service( @Service: 서비스 클래스를 빈으로 등록 ) 어노테이션을 사용하여 UserService 클래스를 빈으로 등록하고, @Autowired ( @Autowired : 빈 간의 의존성을 자동으로 주입. ) 어노테이션을 사용하여 userRepository 빈을 주입할 수도 있다.
↓ 아래 예시 코드
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}
위의 코드에서는 @Service 어노테이션은 UserService 클래스를 빈으로 등록하며, @Autowired 어노테이션은 userRepository 빈을 주입하게 된다.
3️⃣ 스프링 MVC관련 어노테이션
그 외에
- @RequestMapping: 요청 URL과 매핑할 메서드를 지정.
- @PathVariable: 요청 URL에서 경로 변수를 추출.
- @RequestParam: 요청 파라미터를 추출.
- @RequestBody: 요청 본문을 객체로 변환.
- @ResponseBody: 메서드가 반환하는 객체를 응답 본문으로 변환.
- @ResponseStatus: 응답 상태 코드를 지정.
- @ExceptionHandler: 예외 처리 메서드를 지정.
- @Async: 비동기적으로 메서드를 실행.
와 같은 어노테이션들은 스프링 MVC와 관련된 것들이다.
#️⃣ point
- 위의 어노테이션들을 사용하여 스프링 애플리케이션을 구성할 수 있다.
- 스프링은 이러한 어노테이션들을 기반으로 빈을 등록하고 의존성을 주입하는 등의 설정을 자동으로 처리할 수 있다.
- 이러한 기능은 스프링의 핵심 기능 중 하나로, 스프링 애플리케이션 개발을 더욱 쉽고 편리하게 만들어 주게된다.
'JAVA > Spring' 카테고리의 다른 글
HashMap과 ConcurrentHashMap의 차이점 그리고 동시성 문제 해결 (0) | 2024.12.13 |
---|---|
DI(Dependency Injection) 이란? / (포스팅 하나로 세부내용까지 총 정리) (3) | 2023.03.13 |
스코프(Scope) 란? /SpringFramework (1) | 2023.03.13 |
Spring Boot 이란? [Spring Boot은 왜써?] (0) | 2023.03.10 |
Spring Framework 기본 [스프링 제대로 알아가기] DAY1 (1) | 2023.03.09 |
댓글