내 빅데이터... 어떻게 해... 뭘 어떻게 해... 그냥 해야지...
근데 너무 졸리단 말이야?!
내일 빅데이터 수업들어가기전에 무조건 빅데이터 수업 다 듣고,
내일은 강의가 아니라 학과 공부를 하자... 그러면 또 강의가 밀리는데...
어쩌면 이게 불가능한거 아닐까..? ~~ ;;;;
하지만 해냈죠? 😎 난 멋져
1) 생성자 주입
2) setter 주입
3) 필드주입
4) 메서드 주입
대부분 생성자 주입 private + final 키워드 사용을 하게 된다.
그런데 이게 귀찮기 때문에 이를 보완하는 방법을 고민하게 되었다.
➡️ 최적화
getter
, setter
메소드를 자동으로 만들어준다. @Tostring
도 제공한다~@NoArgsConstructor
매개변수 없이 생성자를 생성합니다.
@RequiredArgsConstructor
특별한 처리가 필요한 각 필드에 대해 1개의 매개변수가 있는 생성자를 생성한다.
<생성 필드>
- 초기화되지 않은 모든 필드는 매개변수를 가지며 선언된 위치에서 초기화되지 않은 것으로
final표시된 모든 필드도 가져온다.
- @NonNull로 표시된 필드의 경우 @NonNull명시적 Null 검사도 생성됩니다.
포함 NullPointerException으로 표시된 필드에 대한 매개변수가 있는 경우 생성자는 발생시킵니다.
@AllArgsConstructor
클래스의 각 필드에 대해 1개의 매개변수가 있는 생성자를 생성합니다.
표시가 있는 필드는 @NonNull해당 매개변수에 대해 null 검사를 수행합니다.
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class HelloLombok {
private String name;
private int age;
public HelloLombok(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok();
helloLombok.setAge(23);
int age1 = helloLombok.getAge();
System.out.println("age1 = " + age1);
}
}
➡️ 오류 메시지 출력
java: constructor HelloLombok(java.lang.String,int)
is already defined in class hello.core.HelloLombok
✔️ @RequiredArgsConstructor
을 적용하자,
final
키워드@Component
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
// @Autowired <- 생성자 하나로 생략가능‼️
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
}
@RequiredArgsConstructor
@Component
@RequiredArgsConstructor //final이 붙은 "필수값"에 대한 생성자를 만들어준다.
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
최근에는 생성자를 딱 1개 두고, @Autowired 를 생략하는 방법을 주로 사용한다.
(생성자가 하나만 있으면 @Autowired생략가능)
➕ 더해서 ,여기에 Lombok 라이브러리의 @RequiredArgsConstructor 함께 사용하면
기능은 다 제공하면서, 코드는 깔끔하게 사용할 수 있다.
제가 충격적인 소식을...
"15일 의료계에 따르면 지난 2007년 세계보건기구(WHO) 산하 국제암연구소(IARC)는
야간 교대 근무를 2A군(발암추정물질)으로 지정하며 위험성을 경고했다...." 출처 : 동아일보 2023-07-15
조졌다! 매일 밤샘하는데 😨😱😨😱
진짜 이제 규칙적인 생활만이 살길이다... 오래 살고 싶다...