[Spring] @RequiredArgsConstructor in Lombok

HOJUN·2024년 6월 9일

Backend - Spring

목록 보기
15/34

@RequiredArgsConstructor

스프링 컨테이너는 객체를 생성하고 관리한다. 애플리케이션에서 불필요하게 길어지는 코드를 줄여주고
간단하게 의존성을 주입해주는 역할을 한다.

Lombok에서 제공하는 어노테이션으로 final로 선언된 필드나 NonNull이 붙은 필드의 생성자를 생성해준다.

전통적인 방법으로 @AutoWired가 존재한다.

@Configuration
public class DataBaseConfig {

    // Bean으로 만들어져 Spring의 관리를 받는 객체가 됨
    @Bean
    public UserRepository userRepository(){
        return new UserRepository();
    }
}

DB의 설정이라고 가시적으로 확인 가능한 @Configuration이라는 어노테이션을 명시해주면,
해당 클래스의 @Bean 어노테이션을 달고 있는 메소드를 스프링 컨테이너에서 빈으로 관리한다.

@Service
public class UserService {
	
    @AutoWired
    public final UserRepository userRepository;
	...

그렇게 @Service를 명시해놓은 클래스 에서 객체를 만들지 않고 필드를 통해서 객체를 싱글톤으로 관리할 수 있다.

바로 config 파일을 따로 관리하는 불편함을 없애주는 것이
@RequiredArgsConstructor 어노테이션이다.

0개의 댓글