목차
@AllArgsConstructor
- 클래스의 모든 필드에 대한 생성자를 자동으로 생성합니다.
1. Lombok 적용 전
public class Test {
private final Long age;
private final String name;
private String address;
public Test(Long age, String name, String address) {
this.age = age;
this.name = name;
this.address = address;
}
public Long getAge() {
return age;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2. 롬복 적용 후
import lombok.*;
@AllArgsConstructor
@Getter @Setter
public class Test {
private final Long age;
private final String name;
private String address;
}
public class Execute {
public static void main(String agrs[]) {
Test test = new Test(10L, "veneas", "seoul");
System.out.println(test.getAge());
System.out.println(test.getName());
System.out.println(test.getAddress());
}
}
@RequiredArgsConstructor
- 클래스의 final 필드에 대한 생성자를 자동으로 생성합니다.
- final 필드는 클래스에서 초기화를 하던지 객체 생성 시 생성자를 이용해 꼭 초기화해줘야 합니다.
1. Lombok 적용 전
public class Test {
private final Long age;
private final String name;
private String address;
public Test(Long age, String name) {
this.age = age;
this.name = name;
}
public Long getAge() {
return age;
}
public String getName() {
return name;
}
}
2. 롬복 적용 후
import lombok.*;
@RequiredArgsConstructor
@Getter @Setter
public class Test {
private final Long age;
private final String name;
private String address;
}
public class Execute {
public static void main(String agrs[]) {
Test test = new Test(10L, "veneas");
System.out.println(test.getAge());
System.out.println(test.getName());
}
}
Spring 의존성 주입(dependency injection) 활용
- Spring 생성자를 활용한 의존성 주입시 사용할 수 있습니다.
- 다음 예시는
- 리포지토리에서 EntityManager 주입
- 서비스 코드에서 리포지토리 주입
1. 리포지토리에서 EntityManager 주입
[Lombok 적용 전]
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
@Repository
public class TestRepository {
private final EntityManager em;
public TestRepository(EntityManager em) {
this.em = em;
}
}
[Lombok 적용 후]
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
@Repository
@RequiredArgsConstructor
public class TestRepository {
private final EntityManager em;
}
2. 서비스 코드에서 리포지토리 주입
[Lombok 적용 전]
import org.springframework.stereotype.Service;
@Service
public class TestService {
private final TestRepository testRepository;
public TestService(TestRepository testRepository) {
this.testRepository = testRepository;
}
}
[Lombok 적용 후]
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class TestService {
private final TestRepository testRepository;
}
'Backend > Spring' 카테고리의 다른 글
[Spring Boot] 스프링 부트 인터셉터 적용 (HandlerInterceptor) (0) | 2021.11.28 |
---|---|
[Spring Boot] 스프링 부트 SSL 인증서 적용 (TLS, p12) (0) | 2021.11.26 |
[Spring Boot] 스프링 부트 SQL 로그 설정 (Log4jdbc) (0) | 2021.11.23 |
[Spring Boot] 스프링 부트 로그 설정 (log4j2) (0) | 2021.11.22 |
[Spring Boot] MyBatis 사용법 (DAO) (0) | 2021.11.21 |