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