@Controller
먼저 @Component는 Bean에 Class를 등록시키는 가장 기본적인 어노테이션이며
@Component의 기능과 Controller객체가 가질 수 있는 예외처리등이 추가된 어노테이션이 바로 @Component이다
@Autowired
의존성을 주입할 때 사용하는 어노테이션
클래스 내에서 필요한 객체를 직접 생성하지 않고 Spring컨테이너가 관리하는 객체(Been)을 주입받아 사용할 수 있게 해줌
필드주입방식과 생성자주입방식으로 나뉜다
필드주입방식: 스프링컨테이너가 객체를 생성한 후, @Autowired이 붙은 필드에 의존성을 주입
생성자주입방식: 스프링컨테이너가 객체를 생성할 때 @Autowired이 붙은 생성자를 통해서 필요한 의존성을 주입
<Lombok 라이브러리>
Lombok의
장점: 반복적인 코드작성을 줄여주고, 코드가 간결해지기 때문에 가독성과 유지보수성을 향상시켜줌!
단점: 코드가 자동생성되기 때문에 코드흐름을 이해하기 어려울 수 있다
@NoArgsConstructor
: Lombok 라이브러리에서 제공하는 어노테이션으로 파라미터가 없는 기본 생성자를 자동으로 생성해준다
(근데 스프링에서는 자동으로 관리해주기 때문에 안 쓰임)
@AllArgsConstructor
: 모든 필드를 매개변수로 가진 생성자를 만들어준다
# 스프링에서는 자동으로 관리해주기 때문에 안 쓰임
@Getter / @Setter
: 각 필드들의 Getter / Setter를 생성해준다
@ToString
: toString메서드를 생성해준다
@EqualsAndHashCode
: equals와 hashcode메서드를 생성해준다
보일러플레이트 코드가 뭐지??\
@ RequiredArgsConstructor
final이나 @NonNull으로 선언된 필드만 매개변수로 받는 생성자 생성해준다
@Data
@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한 번에 적용하는 어노테이션
# 이거 하나면 끝
@Service
: @Component보다 더 구체화해서 service객체에 알맞게 been에 등록시켜준다
@ Repository
: 데이터접근객체(DAO)에 부여해주는 @Comoponent기능이 포함된 어노테이션
- 빈 컨테이너에 등록시켜줌
- DB관련 예외를 Spring의 ataAccessException으로 변환하여 일관된 예외 처리가 가능하게 함
'Spring' 카테고리의 다른 글
@Mapping 어노테이션 (4) | 2024.10.31 |
---|---|
@ResponseBody (0) | 2024.10.30 |
Spring - Cookie (0) | 2024.10.18 |
Spring 개념정리(DispatcherServlet, 매개변수 바인딩, DB 커넥트풀, 싱글톤 패턴) (0) | 2024.10.18 |
Spring - Filter / Interceptor (0) | 2024.10.18 |