@Repository
DAO를 bean으로 등록하기위한 annotaion
@Service
일반 class를 bean으로 등록하기위한 annotaion
@Autowired
자동 와이어링 기능이지만 해당 객체가 없거나 동일한 bean이 2개 이상일경우 문제가 발생한다.
사용할 대상만 @Autowired(required=true)로 해주고
나머지 대산에 @Autowired(required=false)로 설정해주면 예외가 발생하지 않지만
이는 근본적인 해결책이 아니다.
다른방법으로 @Resource 어노테이션을 사용할수도 있지만
이또한 근본적인 해결책이 아니며, @Qualifier 어노테이션으로 명시적인 DI를 해주는게 좋다.
@Qualifier
-DI 을 위한 annotaion이며 인젝션 할 대상을 명시해주면 된다
ex) userServiceImpl14에서 필드에 가지고 있는 UserDao에
@Qualifier 어노테이션으로 userDaoImpl14를 DI하는 코드이다.
1
2
3
4
5
6
7
|
@Service("userServiceImpl14")
public class UserServiceImpl14 implements UserService{
//Field
@Autowired
@Qualifier("userDaoImpl14")
UserDao userDao;
|
댓글 없음:
댓글 쓰기