728x90
반응형
@RequiredArgsConstructor와 @Autowired는
둘 다 Spring Framework와 관련된 주석(annotations)이지만,
주로 Lombok과 Spring Framework에서 사용되며,
각각의 목적과 작동 방식이 다릅니다.
RequiredArgsConstructor (Lombok)
이 주석은 Lombok 라이브러리에서 제공합니다.
클래스 내에 final 또는 @NonNull로 선언된 필드에 대한 생성자를 자동으로 생성해 줍니다.
이렇게 생성된 생성자는 필요한 의존성을 주입 받는 데 사용될 수 있습니다.
Spring에서 이 생성자를 사용하여 생성자 기반의 의존성 주입을 할 수 있습니다.
@RequiredArgsConstructor
public class MyService {
private final MyRepository repository;
}
위의 코드는 다음과 같이 생성자를 자동으로 생성합니다:
public MyService(MyRepository repository) {
this.repository = repository;
}
@Autowired (Spring Framework)
Spring Framework에서 제공하는 주석입니다.
주로 필드, 생성자, setter 메서드에 적용하여 Spring Container로부터 자동으로 bean을 주입받습니다.
* Spring 4.3부터 생성자가 한 개만 존재하는 클래스에서는 @Autowired 주석을 생략해도 자동으로 생성자 기반의 의존성 주입이 이루어집니다.
@Service
public class MyService {
private final MyRepository repository;
@Autowired
public MyService(MyRepository repository) {
this.repository = repository;
}
}
@RequiredArgsConstructor는 Lombok을 사용하여 필요한 생성자를 자동으로 만드는 데 사용되며,
@Autowired는 Spring에서 의존성 주입을 위해 사용됩니다.
@RequiredArgsConstructor와 생성자 기반의 의존성 주입을 함께 사용하면, @Autowired를 생략할 수 있습니다.
728x90
반응형
'개발중 > Spring' 카테고리의 다른 글
Spring 환경에서 프로파일 별 효율적 코드 관리 전략 (1) | 2023.12.08 |
---|---|
SocketException의 수수께끼: 첫 번째 API 호출에서만 왜 실패할까? ( retrofit java.net.socketexception connection reset ) (0) | 2023.10.06 |
에러 - Plugin 'org.springframework.boot:spring-boot-maven-plugin:' not found (0) | 2023.09.05 |
[Spring] JSch 를 활용해 특정 서버에 파일 업로드하기 (0) | 2023.07.26 |
[Spring] JSch 를 활용해 특정 서버에서 파일 가져오기 (0) | 2023.07.26 |