java spring/spring mvc
spring mvc 04 - annotation으로 DI하기(@Autowired)
킹차니
2021. 5. 6. 00:25
xml파일로 주입하던 의존성을 어노테이셔 기반으로 바꿔보자.
각 xml에 아래 빨간 밑줄과 같은 코드가 필요하다.
위와 같은 내용이 있어야 스프링이 어노테이션으로 의존성을 주입함을 알 수 있다.
위의 xml파일의 주석처리한 17라인을 @Autowired를 사용하여 주입한다.
@Component가 아닌 @Autowired를 쓰는 이유는 당연하다. 우리는 Bean객체를 새로 등록하는게 아니라, 이미 만들어진 빈 객체를 조립하는 것이기 때문이다. Component가 Bean 객체를 생성해준다면, Autowired는 생성된 객체를 다른 객체에 주입(=조립)해준다.
그니까 위에 보이는 NoticeService형 객체 noticeService는 이미 빈 객체가 생성된 것이다. 아래의 service-context.xml파일에서 생성한다.
파란색 동그라미가 noticeService를 Bean객체로 만드는 부분이다.
또 그 아래의 dataSource도 주석을 하였는데, 이 역시 @Autowired 어노테이션으로 대체한다.
22라인도 @Autowired어노테이션을 멤버변수 부분에 사용한 것을 알 수 있다.