토비의 스프링 3.1 Vol. 2: 스프링의 기술과 선택
대한민국 전자정부 표준 프레임워크 스프링을 설명하는 No. 1 베스트셀러!
XML 대신 자바코드를 이용해서 스프링을 개발할 수 있는 최신 빈 설정 기법부터 편리한 RESTful 스타일의 웹 컨트롤러 작성 기법까지 스프링 3.0과 스프링 3.1의 최신 기술을 상세하게 소개하고 그 중에서 자신에게 맞는 최적의 기술을 선택하고 조합할 수 있는 기준과 활용전략을 다룬다.
『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 이르기까지 모두 참고할 수 있는 스프링 완벽 바이블이다
저자 이일민은 호주의 IT 서비스 기업인 이프릴의 대표 컨설턴트다. 엔터프라이즈 오픈소스 커뮤니티인 오픈시드의 대표이며 한국스프링사용자모임(KSUG)의 공동설립자이기도 하다. 8비트 컴퓨터 시절 프로그래밍의 매력에 빠져 10여 년간 취미로 프로그래밍을 즐겨오다 전문 개발자의 길로 들어서서 19년째 소프트웨어 개발과 교육, 컨설팅 일을 해오고 있다. 2004년부터 스프링을 이용해서 기업과 학교, 인터넷 서비스 업체의 시스템을 개발해왔고 스프링을 기반으로 한 애플리케이션 프레임워크 제작 컨설팅과 스프링 개발자 교육을 해오고 있다. JCO 컨퍼런스에서 세 차례 스프링을 주제로 발표했고 기묘, 이프릴, KSUG 등을 통해 스프링 세미나를 진행하기도 했다. 스프링과 오픈소스 기술에 관련된 정보와 경험을 공유하는 블로그를 운영하고 있다.
1장 IoC 컨테이너와 DI
___1.1 IoC 컨테이너: 빈 팩토리와 애플리케이션 컨텍스트
______1.1.1 IoC 컨테이너를 이용해 애플리케이션 만들기
_________POJO 클래스
_________설정 메타정보
______1.1.2 IoC 컨테이너의 종류와 사용 방법
_________StaticApplicationContext
_________GenericApplicationContext
_________GenericXmlApplicationContext
_________WebApplicationContext
______1.1.3 IoC 컨테이너 계층구조
_________부모 컨텍스트를 이용한 계층구조 효과
_________컨텍스트 계층구조 테스트
______1.1.4 웹 애플리케이션의 IoC 컨테이너 구성
_________웹 애플리케이션의 컨텍스트 계층구조
_________웹 애플리케이션의 컨텍스트 구성 방법
_________루트 애플리케이션 컨텍스트 등록
_________서블릿 애플리케이션 컨텍스트 등록
___1.2 IoC/DI를 위한 빈 설정 메타정보 작성
______1.2.1 빈 설정 메타정보
_________빈 설정 메타정보 항목
______1.2.2 빈 등록 방법
_________XML: 〈bean〉 태그
_________XML: 네임스페이스와 전용 태그
_________자동인식을 이용한 빈 등록: 스테레오타입 애노테이션과 빈 스캐너
_________자바 코드에 의한 빈 등록: @Configuration 클래스의 @Bean 메소드
_________자바 코드에 의한 빈 등록: 일반 빈 클래스의 @Bean 메소드
_________빈 등록 메타정보 구성 전략
______1.2.3 빈 의존관계 설정 방법
_________XML: 〈property〉, 〈constructor-arg〉
_________XML: 자동와이어링
_________XML: 네임스페이스와 전용 태그
_________애노테이션: @Resource
_________애노테이션: @Autowired/@Inject
_________@Autowired와 getBean(), 스프링 테스트
_________자바 코드에 의한 의존관계 설정
_________빈 의존관계 설정 전략
______1.2.4 프로퍼티 값 설정 방법
_________메타정보 종류에 따른 값 설정 방법
_________PropertyEditor와 ConversionService
_________컬렉션
_________Null과 빈 문자열
_________프로퍼티 파일을 이용한 값 설정
______1.2.5 컨테이너가 자동등록하는 빈
_________ApplicationContext, BeanFactory
_________ResourceLoader, ApplicationEventPublisher
_________systemProperties, systemEnvironment
___1.3 프로토타입과 스코프
______1.3.1 프로토타입 스코프
_________프로토타입 빈의 생명주기와 종속성
_________프로토타입 빈의 용도
_________DI와 DL
_________프로토타입 빈의 DL 전략
______1.3.2 스코프
_________스코프의 종류
_________스코프 빈의 사용 방법
_________커스텀 스코프와 상태를 저장하는 빈 사용하기
___1.4 기타 빈 설정 메타정보
______1.4.1 빈 이름
_________XML 설정에서의 빈 식별자와 별칭
_________애노테이션에서의 빈 이름
______1.4.2 빈 생명주기 메소드
_________초기화 메소드
_________제거 메소드
______1.4.3 팩토리 빈과 팩토리 메소드
___1.5 스프링 3.1의 Ioc 컨테이너와 DI
______1.5.1 빈의 역할과 구분
_________빈의 종류
_________컨테이너 인프라 빈과 전용 태그
_________빈의 역할
______1.5.2 컨테이너 인프라 빈을 위한 자바 코드 메타정보
_________IoC/DI 설정 방법의 발전
_________자바 코드를 이용한 컨테이너 인프라 빈 등록
______1.5.3 웹 애플리케이션의 새로운 IoC 컨테이너 구성
______1.5.4 런타임 환경 추상화와 프로파일
_________환경에 따른 빈 설정정보 변경 전략과 한계
_________런타임 환경과 프로파일
_________활성 프로파일 지정 방법
_________프로파일 활용 전략
______1.5.5 프로퍼티 소스
_________프로퍼티
_________스프링에서 사용되는 프로퍼티의 종류
_________프로파일의 통합과 추상화
_________프로퍼티 소스의 사용
_________@PropertySource와 프로퍼티 파일
_________웹 환경에서 사용되는 프로퍼티 소스와 프로퍼티 소스 초기화 오브젝트
___1.6 정리
2장 데이터 액세스 기술
___2.1 공통 개념
______2.1.1 DAO 패턴
_________DAO 인터페이스와 DI
_________예외처리
______2.1.2 템플릿과 API
______2.1.3 DataSource
_________학습 테스트와 통합 테스트를 위한 DataSource
_________오픈소스 또는 상용 DB 커넥션 풀
_________JDNI/WAS DB 풀
___2.2 JDBC
______2.2.1 스프링 JDBC 기술과 동작원리
_________스프링의 JDBC 접근 방법
_________스프링 JDBC가 해주는 작업
______2.2.2 SimpleJdbcTemplate
_________SimpleJdbcTemplate 생성
_________SQL 파라미터
_________SQL 실행 메소드
_________SQL 조회 메소드
_________SQL 배치 메소드
______2.2.3 SimpleJdbcInsert
_________SimpleJdbcInsert 생성
_________SimpleJdbcInsert 실행
______2.2.4 SimpleJdbcCall
_______