- 먼저 spring 컨테이너인 Application Context는 설정 파일로 ApplicationConfig라는 클래스를 읽어들인다.
- ApplicationConfig에는 @componentScan이 DAO 클래스를 찾도록 설정할 것이다. 찾은 모든 DAO 클래스는 Spring 컨테이너가 관리하게 된다.
- Application Context는 DBConfig 클래스를 import하게 된다.
- DBConfig 클래스에서는 데이터 소스와 트랜잭션 매니저 객체를 생성한다.
- DAO 는 필드로 NamedParameterJdbcTemplate과 SimpleJDBCInsert를 가지게 된다.
- 두 객체는 모두 Data Sourse를 필요로 한다.
- 두 객체는 모두 SQL의 실행을 편리하게 하도록 Spring JDBC에서 제공하는 객체이기 때문에 DB 연결을 위해 내부적으로 Data Source를 사용하기 때문이다.
- 두 객체는 RoleDao 생성자에서 초기화를 한다.
- RoleDao 생성자에서 초기화된 두 개의 객체를 이용해서 RoleDao의 메서드를 구현한다.
- Spring JDBC를 사용하는 사용자는 파라미터와 SQL을 가장 신경써야 한다.
- SQL은 RoleDao SQL의 상수로 정의를 해놓음으로써 나중에 SQL이 변경될 경우에 좀 더 편하게 수정할 수 있도록 했다.
- 한 건의 ROLE 정보를 저장하고 전달하기 위한 목적으로 Role DTO가 사용된다.