Spring Boot (Maven)

스프링부트 백그라운드10 ( @Primary, @Qualifier )

pjh8838 2024. 6. 13. 14:26
반응형

DeptDAO, EmpDAO의 상위인 CommonDAO를 하나 만들어준다

 

DeptDAO, EmpDAO의 메서드를 추상메서드로 갖는다.
CommonDAO implements

 

DeptDAO, EmpDAO의 list 메서드를 Common에서 재정의 했기때문에 @Override 붙여주기

 

이제 서비스에서 받아야하는 DAO는 항상 2개가 아닌 둘 중 하나 Dept or Emp

-> 그래서 둘 다 갖고 있는 Common으로 받는다 ( 원래대로 서비스로 받아도 되지만 DAO 간의 우선순위를 위해 )

serviceImpl

=> 여기까지 하고 실행시키면 오류뜸

=> 이유는 DAO 두 개를 다 받아오고 있어서 ( Common에서 뭘 저장할지 몰라서 오류남 )

 


 

해결방법 1.

DAO에 어노테이션  @Primary 추가  ( 우선순위 )

 

 

해결방법 2.

ServiceImpl 생성자 파라미터에 @Qualifier("DAO 이름") 추가

 

728x90
반응형