Java/Spring MVC

[20.10.12 SpMVC_ReadBook2] @RequiredArgsConstructor

우롱차 2020. 10. 19. 10:54
728x90
private final ReadBookDao rbookDao;

Service, Dao와 같은 Dependency Inject가 일어나는 클래스들

@Autowired를 주로 많이 사용하는데

@Autowired로 묶을 때 초근에 권장사항이 모든 변수의 Scope를  private으로 선언하라고 한다.

 

@Autowired가 내부에서 메모리 누수현상이 발견되어서

가급적이면 private final로 선언을 하고

생성자를 만들어서 각각 객체 변수 초기화하도록 한다.

 

final로 선언된 모든 변수는 반드시 생성자에서 외부로부터  주입받거나

자체적으로 변수를 초기화 하는 코드를 만들어야한다.

코딩을 하다보면 변수는 final로 선언했는데

생성자를 만들지 않아서 문제가 발생한다.

 

변수만 private final로 선언하고

lombok에 있는 @RequiredArgsConstructor를 사용하여 생성자 코드를

자동으로 만들도록 해준다.

 

public public ReadBookController(ReadBookDao rbookDao) {
	this.rbookDao = rbookDao;
} << 원래는 이렇게 해줘야하는데! 롬복에있는걸 사용해주면 자동으로  만들어 준다는 이야기

 

>>ReadBookController

728x90