개발/Spring

[Spring] @Autowired 일반 메소드, setter, 변수

hojak99 2017. 9. 6. 16:59

@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 처리를 할 수 있다.



반응형