본문 바로가기
java spring/spring mvc

spring mvc 04 - annotation으로 DI하기(@Autowired)

by 킹차니 2021. 5. 6.

xml파일로 주입하던 의존성을 어노테이셔 기반으로 바꿔보자.

각 xml에 아래 빨간 밑줄과 같은 코드가 필요하다.

위와 같은 내용이 있어야 스프링이 어노테이션으로 의존성을 주입함을 알 수 있다.

위의 xml파일의 주석처리한 17라인을 @Autowired를 사용하여 주입한다.

@Component가 아닌 @Autowired를 쓰는 이유는 당연하다. 우리는 Bean객체를 새로 등록하는게 아니라, 이미 만들어진 빈 객체를 조립하는 것이기 때문이다. Component가 Bean 객체를 생성해준다면, Autowired는 생성된 객체를 다른 객체에 주입(=조립)해준다.

그니까 위에 보이는 NoticeService형 객체 noticeService는 이미 빈 객체가 생성된 것이다. 아래의 service-context.xml파일에서 생성한다.

파란색 동그라미가  noticeService를 Bean객체로 만드는 부분이다.

 

또 그 아래의  dataSource도 주석을 하였는데, 이 역시 @Autowired 어노테이션으로 대체한다.

22라인도 @Autowired어노테이션을 멤버변수 부분에 사용한 것을 알 수 있다.