스프링 개발자와 가장 오랜 시간을 함께한 스프링 중급서!
1판이 출간된 이후 5판까지 꾸준히 개정되며 스프링 중급서의 위치를 지켜왔다. 스프링 입문자가 아니라 실제로 현업에서 스프링을 개발하면서 알아야 하는 깊이 있는 정보를 체계적으로 정리하고 전달해왔다. 스프링의 기초와 핵심 개념부터 리모팅, 하이버네이트, EJB 등을 설명하면서 저자의 경험과 통찰을 담아냈다. 스프링 프레임워크를 개발하는 Pivotal 사의 현업 개발자, Pivotal 공인 스프링 개발자, 오랜 기간 스프링으로 개발한 경험자가 모여 공동 집필하며 실무에 필요한 지식을 담으려 노력했다. 또한, 모던 자바를 지원하면서 진화한 스프링 프레임워크도 설명했다.
스프링 프레임워크의 버전 5를 다루는 이 책은, 시장을 주도하는 엔터프라이즈 자바 애플리케이션 개발 프레임워크인 스프링 프레임워크 5의 강력한 기능을 활용할 때 참고할 수 있는 가장 종합적이고 전문적인 스프링 참고 자료이며 실용적인 가이드입니다.
이 책에서는 스프링의 핵심을 알아보면서 하이버네이트(Hibernate), JPA 2, 타일즈(Tiles), 타임리프(Thymeleaf), 웹소켓(WebSocket)과 같은 선도적인 자바 기술과 스프링을 통합하는 방법을 알아봅니다. 또한, 자바 구성 클래스, 람다 표현식, 스프링 부트(Boot), 반응형 프로그래밍을 사용하는 것에 초점을 맞춥니다. 그리고 리모팅(remoting) 지원, 트랜잭션, 웹과 프레젠테이션 티어 등과 같은 엔터프라이즈 애플리케이션 개발과 관련된 통찰력과 실제적인 경험을 공유합니다.
<전문가를 위한 스프링 5>(개정 5판)에서는 다음과 같은 내용을 배웁니다.
[예제 코드]
• 길벗 깃허브 저장소: https://github.com/gilbutITbook/006987
• 원서 소스 코드: https://github.com/Apress/pro-spring-5
1장 스프링 소개
__1.1 스프링이란?
__1.2 스프링 프로젝트
__1.3 스프링의 대안
__1.4 정리
2장 스프링 시작하기
__2.1 스프링 프레임워크
가져오기
__2.2 스프링 모듈 이해하기
__2.3 스프링 문서 사용하기 0672.4 스프링으로 Hello World 애플리케이션
만들기
__2.5 정리
3장 스프링 IoC와 DI 소개
__3.1 IoC와 DI
__3.2 IoC의 종류
__3.3 스프링의 제어 역전
__3.4 스프링의 의존성 주입
__3.5 애플리케이션 컨텍스트
구성하기
__3.6 빈에 자동와이어링하기
__3.7 빈 상속 설정하기
__3.8 정리
4장 스프링 구성 상세와 스프링 부트
__4.1 스프링이 애플리케이션
이식성에 미치는 영향
__4.2 빈 라이프사이클 관리
__4.3 빈 생성 시점에 통지
받기
__4.4 빈 소멸 시점에 통지
받기
__4.5 빈이 스프링을 알게(Spring Aware)하기
__4.6 FactoryBean 사용하기
__4.7 자바빈 PropertyEditor
__4.8 그 외의 스프링 ApplicationContext 구성 살펴보기
__4.9 리소스 접근하기
__4.10 자바 클래스를 사용한
구성
__4.11 프로파일
__4.12 Environment와 PropertySource 추상화
__4.13 JSR-330 애너테이션을 사용한
구성
__4.14 그루비를 사용한 구성
__4.15 스프링 부트
__4.16 정리
5장 스프링 AOP 소개
__5.1 AOP 개념
__5.2 AOP의 종류
__5.3 스프링의 AOP 지원
__5.4 스프링 AOP 아키텍처
__5.5 스프링의 어드바이저와
포인트컷
__5.6 프록시 이해하기
__5.7 포인트컷의 고급 활용
__5.8 인트로덕션 시작하기
__5.9 인트로덕션 정리
__5.10 AOP 프레임워크 서비스
__5.11 @AspectJ 방식 애너테이션 사용하기
__5.12 AspectJ 연동
__5.13 정리
6장 스프링 JDBC
__6.1 람다식 소개
__6.2 예제 코드에서 사용할
예제 데이터 모델
__6.3 JDBC 인프라스트럭처 살펴보기
__6.4 스프링 JDBC 인프라스트럭처
__6.5 데이터베이스 커넥션과
데이터소스
__6.6 임베디드 데이터베이스
기능
__6.7 DAO 클래스에서 DataSource 사용하기
__6.8 예외 처리
__6.9 JdbcTemplate
클래스
__6.10
ResultSetExtractor를 사용해 중첩 도메인 객체 조회하기
__6.11 JDBC 조작을 모델링하는
스프링 클래스
__6.12
MappingSqlQuery
__6.13 데이터 등록 및 생성된
키 조회하기
__6.14
BatchSqlUpdate를 사용하는 배치 조작
__6.15 SqlFunction으로 저장 함수 호출하기
__6.16 스프링 데이터 프로젝트의 JDBC 확장
__6.17 JDBC 사용 시 고려사항
__6.18 스프링 부트 JDBC
__6.19 정리
7장 스프링에서 하이버네이트 사용하기
__7.1 예제 코드에서 사용할
예제 데이터 모델
__7.2 하이버네이트 SessionFactory 구성
__7.3 하이버네이트 애너테이션으로 ORM 매핑하기
__7.4 하이버네이트 Session 인터페이스
__7.5 데이터 등록
__7.6 데이터 수정
__7.7 데이터 삭제
__7.8 엔터티로 테이블을
생성하도록 하이버네이트 구성하기
__7.9 메서드와 필드 중
어디에 애너테이션을 추가할 것인가?
__7.10 하이버네이트를 사용할
때 고려사항
__7.11 정리
8장 스프링에서 JPA2로 데이터
액세스하기
__8.1 JPA 2.1 소개
__8.2 JPA로 데이터베이스 조작하기
__8.3 생성자 표현식을 사용한
커스텀 결과 타입 쿼리
__8.4 네이티브 쿼리 사용하기
__8.5 JPA 2 크라이티리어 API로 크라이티리어 쿼리 사용하기
__8.6 스프링 데이터 JPA 소개
__8.7
JpaRepository 사용하기
__8.8 스프링 데이터 JPA로 커스텀 쿼리 사용하기
__8.9 하이버네이트 엔버스로
엔터티 버전 관리하기
__8.10 스프링 부트 JPA
__8.11 JPA를 사용할 때 고려사항
__8.12 정리
9장 트랜잭션 관리
__9.1 스프링 트랜잭션 추상화
레이어 알아보기
__9.2
PlatformTransactionManager 구현체
__9.3 트랜잭션 프로퍼티
살펴보기
__9.4 예제 코드를 위한
데이터 모델과 인프라
__9.5 프로그래밍으로 트랜잭션
사용하기
__9.6 스프링과 글로벌 트랜잭션
__9.7 정리
10장 타입 변환과 포매팅을 사용해 유효성 검증하기
__10.1 의존성
__10.2 스프링 타입 변환
시스템
__10.3 스프링 타입 변환
소개
__10.4 스프링에서 필드 포매팅하기
__10.5 스프링에서 유효성
검증
__10.6 사용자 정의 검증에 @AssertTrue 사용하기
__10.7 사용자 정의 검증에서
고려사항
__10.8 어떤 유효성 검증 API를 사용할지 결정하기
__10.9 정리
11장 태스크 스케줄링
__11.1 태스크 스케줄링 예제에
필요한 의존성
__11.2 스프링의 태스크 스케줄링
__11.3 스프링에서 태스크
실행
__11.4 정리
12장 스프링 리모팅 사용하기
__12.1 예제 데이터 모델
사용하기
__12.2 JPA 백엔드에 필요한 의존성
추가
__12.3
SingerService 구현 및 구성하기
__12.4 스프링에서 JMS 사용하기
__12.5 스프링 부트 Artemis 스타터
__12.6 스프링에서 RESTful-WS 사용하기
__12.7 Castor XML 구성하기
__12.8 스프링 부트를 사용하는
스프링 RESTful-WS
__12.9 스프링에서 AMQP 사용하기
__12.10 정리
13장 스프링 테스트
__13.1 테스트 범주 소개
__13.2 스프링 테스트 애너테이션
사용하기
__13.3 로직 단위 테스트
구현하기
__13.4 통합 테스트 구현하기
__13.5 프런트엔드 단위 테스트
구현하기
__13.6 정리
14장 스프링에서 스크립트 언어 사용하기
__14.1 자바에서 스크립트
언어 사용하기
__14.2 그루비 소개
__14.3 스프링에서 그루비
사용하기
__14.4 동적 언어 코드 내장하기
__14.5 정리
15장 애플리케이션 모니터링
__15.1 스프링에서의 JMX 지원
__15.2 스프링 빈을 JMX로 내보내기
__15.3 자바 VisualVM으로 JMX 모니터링하기
__15.4 하이버네이트 통계
정보 모니터링
__15.5 스프링 부트와 JMX
__15.6 정리
16장 스프링 웹 애플리케이션
__16.1 서비스 레이어 구현
예제
__16.2
SingerService 구성
__16.3 MVC 및 스프링 MVC 소개
__16.4 스프링 MVC 프로젝트 구조 이해하기
__16.5 국제화(i18n)
__16.6 테마와 템플릿 사용하기
__16.7 아파치 타일즈를 사용한
뷰 템플릿
__16.8 스프링 MVC에서 타일즈 구성
__16.9 가수 정보 뷰의 구현
__16.10 제이쿼리와 제이쿼리 UI 사용하기
__16.11 파일 업로드 처리
__16.12 스프링 시큐리티를
사용한 웹 애플리케이션 보안
__16.13 스프링 부트로 스프링
웹 애플리케이션 생성하기
__16.14 타임리프 뷰 생성하기
__16.15 타임리프 확장 기능
사용하기
__16.16 정리
17장 웹소켓
__17.1 웹소켓 소개
__17.2 스프링에서 웹소켓
사용하기
__17.3 웹소켓 API 사용하기
__17.4 STOMP로 메시지 전달하기
__17.5 정리
18장 스프링 프로젝트: 배치, 인티그레이션, XD, 그리고 기타
__18.1 스프링 배치
__18.2
JSR-352
__18.4 스프링 인티그레이션
__18.5 스프링 XD
__18.6 스프링 프레임워크의 5가지 주목할 만한 기능
__18.7 정리
부록 A 개발 환경 구성하기
A.1 pro-spring-5 프로젝트 소개
A.2 그레이들 구성 이해하기
A.3 pro-spring-5 프로젝트 내려받기
A.4 빌드 및 트러블슈팅
A.5 아파치 톰캣에 애플리케이션
배포
ㆍ지은이 롭해롭
ㆍ지은이 율리아나코스미나
ㆍ지은이 크리스샤이퍼
ㆍ지은이 클라렌스호
ㆍ옮긴이 김성윤
ㆍ옮긴이 서경석
ㆍ옮긴이 이승룡
ㆍ감수 김성윤
독자의견 남기기