Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 백준 #
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
Archives
- Today
- Total
luke
[Spring/스프링] @RequiredArgsConstructor (lombok) 본문
lombok으로 스프링에 DI(의존성 주입)의 방법 중에 생성자 주입을 임의의 코드 없이 자동으로 설정해 주는 어노테이션이다.
@RequiredArgsConstructor는 초기화되지 않은 final 필드나 , @NonNull 이 붙은 필드에 대해 생성자를 생성해 준다.
새로운 필드를 추가할 때 다시 생성자를 만들어서 관리해야 하는 번거로움을 없애준다. (@Autowired를 사용하지 않고 의존성 주입)
- @RequiredArgsConstructor를 사용한 예시
@RestController
@RequiredArgsConstructor
@RequestMapping("/items")
public class Items{
private final FirstService firstService;
private final SecondService secondService;
private final ThirdService thirdService;
...
}
- 해당 필드로 구성된 생성자를 @RequiredArgsConstructor가 자동으로 생성자 주입에 대한 코드를 생성
- @RequiredArgsConstructor를 사용하지 않고 생성자 주입 코드를 모두 작성한 예시
@RestController
@RequestMapping("/items")
public class Items{
private final FirstService firstService;
private final SecondService secondService;
private final ThirdService thirdService;
@Autowired
public Items(FirstService firstService, SecondService secondService, ThirdService thirdService) {
this.firstRepository = firstRepository;
this.secondRepository = secondRepository;
this.thirdRepository = thirdRepository;
}
}
보통 DI(의존성 주입)을 방식에는 필드 주입(Field Injection), 수정자 주입(Setter Injection), 생성자 주입(Constructor Injection)의 3가지 방법이 있는데 이 중에서 권장하는 의존성 주입은 생성자 주입 방식이다.
하지만 생성자 주입을 위한 코드를 만드는 부분에서 번거로움이 존재한다.
그래서 많이들 사용하는 lomBok에서 @Getter,@Setter 어노테이션처럼 @RequiredArgsConstructor 어노테이션은 클래스에 선언된 final 변수들, 필드 들을 매개 변수로 하는 생성자를 자동으로 생성해 주는 어노테이션이다.
'Study > Spring' 카테고리의 다른 글
[Spring/스프링] - @RequestParam (0) | 2024.04.06 |
---|---|
[Spring/스프링] - @RequestMapping, @GetMapping, @PostMapping (0) | 2024.02.28 |
[Spring/스프링] @Controller (0) | 2024.02.19 |
[Spring/스프링] @PathVariable (0) | 2023.12.28 |