-
[Spring] DI(Dependency Injection) 란?Spring/용어 2020. 3. 22. 16:12반응형
DI(Dependency Injection) 란?
IoC(Inversion of Control)이라고도 표현하며, 객체 간의 의존 관계를 객체 자신이 아닌 외부의 조립기가 수행해 준다는 개념입니다.
의존할 객체를 지정하는 방법
123456789101112131415// 1.객체를 직접 만들어 사용public class BoardService {private BoardDao boardDao = new BoardDao();}// 2.객체를 주입 받아 사용public class BoardService {private BoardDao boardDao;// 생성자에서 의존하는 객체를 전달받음public BoardService(BoardDao boardDao) {this.boardDao = boardDao;}}cs BoardDao 객체를 주입 받아 사용하는 경우 BoardServiceImpl 클래스 코드는 BoardDao 객체를 생성하는 코드가 포함되지 않습니다. 대신, 조립기의 역할을 하는 Assembler가 BoardDao 객체를 생성한 뒤 BoardServiceImpl 객체에 전달해 주게 됩니다. 이렇게 조립기가 의존 관계를 관리해 주는 방식을 DI(Dependency Injection)이라고 합니다.Spring에서의 DI
스프링은 설정 파일이나 어노테이션을 통해서 객체 간의 의존 관계를 설정할 수 있도록 지원하고 있습니다. 따라서, 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없습니다.
DI을 적용하는 방법
1.Field Injection
12345678910@Servicepublic class BoardService {@Autowiredprivate BoardDao boardDao;public void doSomething() {}}cs 2.Setter based Injection
123456789101112131415@Servicepublic class BoardService {private BoardDao boardDao;@Autowiredpublic void setBoardDao(BoardDao boardDao) {this.boardDao = boardDao;}public void doSomething() {}}cs 3.Constructor based Injection
1234567891011121314@Servicepublic class BoardService {private final BoardDao boardDao;@Autowiredpublic BoardService(BoardDao boardDao) {this.boardDao = boardDao;}public void doSomething() {}}cs 반응형'Spring > 용어' 카테고리의 다른 글
[Spring] AOP(Aspect Oriented Programming) 란? (0) 2020.03.22