J2EE 개발을 좀 더 경량화시키기 위해서 2003년에 디자인된 스프링 프레임워크는 엔터프라이즈 애플리케이션을 개발하기 위한 표준으로 자리매김했다. 최신 버전인 스프링 4에서는 IoC 컨테이너를 위한 새 애너테이션, 스프링 표현식의 향상 내용, REST를 위한 추가 지원 같은 주요 업그레이드와 함께 자바 8 인티그레이션 전체를 지원한다. 스프링에 입문하려는 분이나 새로 도입된 내용을 자세히 알고 싶은 분들 모두에게 최적의 스프링 책이 될 것이다.
《스프링 인 액션(제4판)》은 스프링 프레임워크에 대한 완벽 가이드다. 최근에 업데이트된 스프링 MVC를 포함하여 스프링 코어, 보안, 웹 플로 등에 관한 내용까지 모두 다룬다. 또한, 간단한 코드와 예제를 통해서 효과적인 JEE 애플리케이션 개발 방법을 제공한다. 저자 크레이그 월즈는 독자들이 필요로 하는 기술을 재미있는 예제를 통해 쉽게 알려 주는 특별한 재능을 가졌다.
이 책의 주요 내용과 특징은 다음과 같다.
스프링 소셜과 스프링 싱크 프로젝트를 이끄는 Pivotal의 시니어 엔지니어이다. 스프링 프레임워크의 열렬한 지지자이자 프로모터로서 지역 사용자 그룹과 콘퍼런스에서 강연하고, 블로그에 스프링에 관한 글을 쓰면서 바쁜 나날을 보내고 있다. 코딩을 하지 않을 때는 아내와 두 딸, 두 마리의 새, 두 마리의 강아지와 함께 지낸다.
엔터프라이즈 환경에서 오픈 소스를 활용한 프레임워크를 구축하는 일에 관심이 많으며, 최근에는 모바일을 접목한 하이브리드 환경에서 사용자 인터페이스와 사용자 경험 UI/UX, HTML5, Spring, NoSQL, Node.js, AngularJS 등 아키텍처 전반에 걸친 웹 기술과 빅 데이터, 인지컴퓨팅 기술을 적용하는 일에 집중하고 있다. 아두이노와 라즈베리파이 등의 다양한 오픈 하드웨어 디바이스를 사용한 사물인터넷 관련 서비스도 제공하고 있다.
HTML5와 CSS3, 자바스크립트 프로그래밍, Node.js, AngularJS, MySQL, MongoDB와 관련된 다수의 서적을 번역하였으며, 웹과 데이터베이스 관련 기술을 전파하기 위해 애쓰고 있다.
CHAPTER 2 빈 와이어링(묶기) 39
2.1 스프링 설정 옵션 알아보기 40
2.2 자동으로 빈 와이어링하기 41
2.3 자바로 빈 와이어링하기 52
2.4 빈을 XML로 와이어링하기 57
2.5 설정 가져오기와 믹싱하기 73
2.6 요약 77
CHAPTER 3 고급 와이어링 79
3.1 환경과 프로파일 79
3.2 조건부 빈 88
3.3 오토와이어링의 모호성 92
3.4 빈 범위 100
3.5 런타임 값 주입 104
3.6 요약 118
CHAPTER 4 애스펙트 지향 스프링 121
4.1 AOP란 무엇인가? 123
4.2 포인트커트를 이용한 조인 포인트 선택 129
4.3 애스펙트 애너테이션 만들기 132
4.4 XML에서 애스펙트 선언하기 145
4.5 AspectJ 애스펙트 주입 155
4.6 요약 158
PART 2 웹에서의 스프링
CHAPTER 5 스프링 웹 애플리케이션 만들기 161
5.1 스프링 MVC 시작하기 162
5.2 간단한 컨트롤러 작성하기 170
5.3 요청 입력받기 182
5.4 폼 처리하기 188
5.5 요약 198
CHAPTER 6 웹 뷰 렌더링 199
6.1 뷰 리졸루션 이해하기 199
6.2 JSP 뷰 만들기 202
6.3 아파치 타일즈 뷰로 레이아웃 정의하기 221
6.4 Thymeleaf로 작업하기 228
6.5 요약 235
CHAPTER 7 고급 스프링 MVC 237
7.1 다양한 스프링 MVC 설정 238
7.2 멀티파트 폼 데이터 처리하기 244
7.3 예외 처리하기 255
7.4 어드바이징 컨트롤러 259
7.5 리다이렉션되는 요청 간의 데이터 전달하기 261
7.6 요약 265
CHAPTER 8 스프링 웹 플로로 작업하기 267
8.1 스프링에 웹 플로 설정하기 268
8.2 플로의 컴포넌트 271
8.3 모든 것을 합쳐 보기: 피자 플로 279
8.4 웹 플로 보안 295
8.5 요약 295
CHAPTER 9 웹 애플리케이션 보안 297
9.1 스프링 시큐리티 시작하기 298
9.2 사용자 상세 서비스 선택 304
9.3 요청 가로채기 316
9.4 사용자 인증하기 324
9.5 뷰 보안하기 330
9.6 요약 336
PART 3 백엔드에서의 스프링
CHAPTER 10 스프링과 JDBC를 사용하여 데이터베이스 사용하기 339
10.1 스프링의 데이터 액세스 철학 340
10.2 데이터 소스 설정 348
10.3 스프링과 JDBC 357
10.4 요약 367
CHAPTER 11 객체 관계형 매핑을 통한 데이터 퍼시스팅 369
11.1 스프링과 하이버네이트 통합 371
11.2 스프링과 자바 퍼시스턴스 API 376
11.3 스프링 데이터를 사용한 자동 JPA 저장소 386
11.4 요약 396
CHAPTER 12 NoSQL 데이터베이스 사용하기 397
12.1 MongoDB의 유지성 도큐먼트 398
12.2 Neo4j로 그래프 데이터 사용하기 414
12.3 Redis에서 키-값 데이터 사용하기 429
12.4 요약 437
CHAPTER 13 데이터 캐싱하기 439
13.1 캐시 지원하기 440
13.2 캐싱을 위한 애너테이션 메소드 446
13.3 XML에서 캐싱 선언하기 453
13.4 요약 457
CHAPTER 14 시큐리티 메소드 459
14.1 애너테이션을 사용한 시큐어 메소드 460
14.2 메소드 레벨 시큐리티를 위한 표현식 사용하기 463
14.3 요약 472
PART 4 스프링 통합
CHAPTER 15 원격 서비스 사용하기 477
15.1 스프링 리모팅 개요 478
15.2 RMI 활용 481
15.3 Hessian과 Burlap을 이용한 리모트 서비스 노출 487
15.4 스프링의 HttpInvoker 사용하기 494
15.5 웹 서비스의 발행과 소비 497
15.6 요약 504
CHAPTER 16 스프링 MVC로 REST API 사용하기 505
16.1 휴식(REST)을 취하다 506
16.2 첫 번째 REST 엔드포인트 만들기 508
16.3 더 많은 리소스 사용하기 524
16.4 REST 리소스 사용하기 533
16.5 요약 547
CHAPTER 17 스프링 메시징 549
17.1 비동기 메시징에 대한 간단한 소개 550
17.2 JMS로 메시지 보내기 556
17.3 AMQP를 이용한 메시징 576
17.4 요약 588
CHAPTER 18 WebSocket과 STOMP를 사용하여 메시징하기 589
18.1 스프링의 하위 레벨 웹 소켓 API 사용하기 590
18.2 웹 소켓 지원 부족에 대해 대응하기 596
18.3 STOMP 메시징 작업하기 599
18.4 사용자 타깃 메시지 사용하기 613
18.5 예외 상황 메시지 처리하기 617
18.6 요약 619
CHAPTER 19 스프링을 사용하여 이메일 전송하기 621
19.1 이메일 전송을 위해 스프링 설정하기 622
19.2 이메일 메시지를 풍부하게 꾸미기 625
19.3 템플릿을 사용하여 이메일 생성하기 629
19.4 요약 634
CHAPTER 20 JMX를 이용한 스프링 빈 관리 635
20.1 스프링 빈을 MBean으로 익스포트하기 636
20.2 MBean 리모팅 646
20.3 통지 처리 651
20.4 요약 654
CHAPTER 21 스프링 부트를 사용한 스프링 개발 간소화 655
21.1 스프링 부트 소개 656
21.2 스프링 부트로 애플리케이션 만들기 662
21.3 스프링 부트 CLI로 그루비 사용하기 677
21.4 액추에이터로 애플리케이션 파악하기 684
21.5 요약 688
찾아보기 691