@Autowired 는 setter 메소드와 변수, 일반 메소드에 사용할 수 있다고 했었다.
일반 변수에 사용하는 방법은 필자가 많이 사용하는 방법으로 코드는 다음과 같이 사용한다.
@Autowired
BoardDao boardDao;
@Autowired
BoardService boardService;
그렇다면 setter 메소드에선 어떻게 사용할 수 있을까?
BoardDao boardDao;
@Autowired
public void setBoardDao(BoardDao boardDao) {
this.boardDao = boardDao;
}
다음과 같이 사용할 수 있다. 이로 인한 코드 때문에 Spring Container에 의해서 자동으로 setBoardDao() 메소드가 호출되어 BoardDao 타입의 Bean이 boardDao 멤버변수로 주입된다.
그렇다면 일반 메소드에선 어떻게 될까?
BoardDao boardDao;
BoardService boardService;
@Autowired
public void init(BoardDao boardDao, BoardService boardService) {
this.boardDao = boardDao;
this.boardService = boardService;
}
다음과 같이 사용해서 Spring Container 에 의해 Dependency Injection 처리를 할 수 있다.
반응형