# 7. 스프링핵심 기술의 으용

## 7. 스프링 핵심 기술의 응용

### 7.1 SQL과 DAO의 분리

**DAO에 있는 SQL 문장을 분리** -> **MyBatis**나 **iBatis**가 이 개념으로 탄생한듯

#### XML 설정을 이용한 분리

SQL문을 key-value 형태로 XML에 설정하고, 이것을 **DI** 받는 식

```java
// map 형태
Map<String, String> sqlMap; // setter 메서드 DI

// service 인터페이스 형태
SqlService service; // setter DI, SqlService에 메서드별로 sql 정의, Map을 DI받아서 활용
```

### 7.2 인터페이스 분리와 자기참조 빈

#### XML 파일매핑

* JAXB(Java Architecture for XML binding)
