CHAPTER 1 스프링 프레임워크 소개
1.1 소개
1.2 스프링 모듈
1.3 스프링 IoC 컨테이너
1.4 스프링의 장점
1.5 간단한 스프링 애플리케이션
1.6 스프링 5의 새로운 내용
1.7 스프링에 기반한 프레임워크들
1.8 요약
CHAPTER 2 스프링 프레임워크 기초
2.1 소개
2.2 ‘인터페이스를 사용하는 프로그래밍’ 설계 원칙
2.3 정적 팩토리 메서드나 인스턴스 팩토리 메서드를 사용해 빈 만들기
2.4 생성자 기반 DI
2.5 설정 정보를 빈에 전달하기
2.6 빈 스코프
2.7 요약
CHAPTER 3 빈 설정
3.1 소개
3.2 빈 정의 상속
3.3 생성자 인수 매치하기
3.4 다른 타입의 빈 프로퍼티와 생성자 인수 설정하기
3.5 내장 프로퍼티 에디터
3.6 스프링 컨테이너에 프로퍼티 에디터 등록하기
3.7 이름공간으로 빈 정의를 간결하게 만들기
3.8 util 스키마
3.9 FactoryBean 인터페이스
3.10 빈 설정 모듈화하기
3.11 요약
CHAPTER 4 의존 관계 주입
4.1 소개
4.2 내부 빈
4.3 depends-on 속성을 통해 빈 초기화 순서 제어하기
4.4 싱글턴과 프로토타입 스코프 빈의 의존 관계
4.5 싱글턴 빈 내부에서 새로운 프로토타입 빈 인스턴스 얻기
4.6 의존 관계 자동 연결
4.7 요약
CHAPTER 5 빈과 빈 정의 커스텀화하기
5.1 소개
5.2 빈의 초기화와 정리 로직 커스텀화하기
5.3 BeanPostProcessor를 사용해 새로 생성된 빈 인스턴스와 상호 작용하기
5.4 BeanFactoryPostProcessor를 사용해 빈 정의 변경하기
5.5 요약
CHAPTER 6 애너테이션 기반 개발
6.1 소개
6.2 @Component - 스프링 빈 식별하기
6.3 @Autowired - 객체의 타입으로 의존 관계 자동 연결하기
6.4 @Qualifier - 빈 이름으로 의존 관계 자동 연결하기
6.5 JSR 330 @Inject와 @Named 애너테이션
6.6 JSR 250 @Resource 애너테이션
6.7 @Scope, @Lazy, @DependsOn, @Primary 애너테이션
6.8 @Value 애너테이션을 사용해 빈 클래스 설정하기
6.9 스프링 Validator 인터페이스를 사용해 객체 검증하기
6.10 JSR 380(빈 검증 2.0) 애너테이션을 사용해 제약 사항 지정하기
6.11 빈 정의 프로파일
6.12 요약
CHAPTER 7 자바 기반의 컨테이너 설정
7.1 소개
7.2 @Configuration과 @Bean 애너테이션으로 빈 설정하기
7.3 빈 의존 관계 주입하기
7.4 스프링 컨테이너 설정하기
7.5 생명주기 콜백
7.6 자바 기반 설정 임포트하기
7.7 다른 주제들
7.8 요약
CHAPTER 8 스프링을 사용해 데이터베이스와 상호 작용하기
8.1 소개
8.2 MyBank 애플리케이션 요구 사항
8.3 스프링 JDBC 모듈로 MyBank 애플리케이션 개발하기
8.4 하이버네이트로 MyBank 애플리케이션 개발하기
8.5 스프링을 통한 트랜잭션 관리
8.6 자바 기반 설정을 사용하는 MyBank 애플리케이션 개발하기
8.7 요약
CHAPTER 9 스프링 데이터
9.1 소개
9.2 핵심 개념과 인터페이스
9.3 스프링 데이터 JPA
9.4 Querydsl을 사용해 질의 만들기
9.5 예제를 통한 질의
9.6 스프링 데이터 몽고DB
9.7 요약
CHAPTER 10 스프링을 사용한 메시징, 전자우편, 비동기 메시지 실행, 캐싱
10.1 소개
10.2 MyBank 애플리케이션의 요구 사항
10.3 JMS 메시지 보내기
10.4 JMS 메시지 받기
10.5 전자우편 보내기
10.6 작업 스케줄링과 비동기 실행
10.7 캐싱
10.8 MyBank 애플리케이션 실행하기
10.9 요약
CHAPTER 11 AOP
11.1 소개
11.2 간단한 AOP 예제
11.3 스프링 AOP 프레임워크
11.4 포인트컷 식
11.5 어드바이스 유형
11.6 스프링 AOP - XML 스키마 스타일
11.7 요약
CHAPTER 12 스프링 웹 MVC 기초
12.1 소개
12.2 샘플 웹 프로젝트의 디렉터리 구조
12.3 ‘Hello World’ 애플리케이션 이해하기
12.4 DispatcherServlet - 프론트 컨트롤러
12.5 @Controller와 @RequestMapping을 사용해 컨트롤러 개발하기
12.6 MyBank 웹 애플리케이션 요구 사항
12.7 스프링 웹 MVC 애너테이션 - @RequestMapping과 @RequestParam
12.8 검증
12.9 @ExceptionHandler 애너테이션으로 예외 처리하기
12.10 루트 웹 애플리케이션 컨텍스트 XML 파일(들) 로드하기
12.11 요약
CHAPTER 13 스프링 웹 MVC를 활용한 검증과 데이터 바인딩
13.1 소개
13.2 @ModelAttribute 애너테이션을 사용해 모델 추가하고 가져오기
13.3 @SessionAttribute 애너테이션을 사용해 모델 속성 캐싱하기
13.4 스프링의 데이터 바인딩 지원
13.5 스프링의 검증 지원
13.6 스프링 form 태그 라이브러리
13.7 자바 기반 설정을 사용해 웹 애플리케이션 설정하기
13.8 요약
CHAPTER 14 스프링 웹 MVC로 RESTful 웹 서비스 개발하기
14.1 소개
14.2 정기 예금 웹 서비스
14.3 스프링 웹 MVC를 사용해 RESTful 웹 서비스 구현하기
14.4 RestTemplate과 WebClient로 RESTful 웹 서비스에 접근하기
14.5 HttpMessageConverter로 자바 객체를 HTTP 요청이나 응답으로 변경하거나, 반대 방향으로 변경하기
14.6 @PathVariable과 @MatrixVariable 애너테이션
14.7 요약
CHAPTER 15 스프링 웹 MVC 더 살펴보기
- 국제화, 파일 업로드, 비동기 요청 처리
15.1 소개
15.2 핸들러 인터셉터를 사용해 요청을 전처리/후처리하기
15.3 자원 번들을 사용해 국제화하기
15.4 요청을 비동기적으로 처리하기
15.5 타입 변환과 형식화 지원
15.6 스프링 웹 MVC의 파일 업로드 지원
15.7 요약
CHAPTER 16 스프링 시큐리티를 사용한 애플리케이션 보안
16.1 소개
16.2 MyBank 웹 애플리케이션의 보안 요구 사항
16.3 스프링 시큐리티로 MyBank 웹 애플리케이션 보호하기
16.4 MyBank 웹 애플리케이션 - 스프링 시큐리티에 ACL 모듈을 사용해 FixedDepositDetails 인스턴스 보호하기
16.5 자바 기반 설정 방식을 사용해 스프링 시큐리티 설정하기
16.6 요약
CHAPTER 17 자바 함수형 프로그래밍
17.1 소개
17.2 명령형 스타일과 함수형 스타일 비교
17.3 람다식
17.4 간단한 함수와 고차 함수 만들기
17.5 Stream API
17.6 메서드 참조
17.7 요약
CHAPTER 18 RxJava 2를 사용한 반응형 프로그래밍
18.1 소개
18.2 반응형 스트림
18.3 뜨거운 출간자와 차가운 출간자
18.4 배압
18.5 요약
CHAPTER 19 스프링 웹플럭스, 스프링 데이터, 스프링 시큐리티를 사용해 반응형 RESTful 웹 서비스 개발하기
19.1 소개
19.2 리액터와 RxJava 2에 정의된 반응형 타입
19.3 스프링 데이터를 사용해 데이터 접근 레이어 개발하기
19.4 스프링 웹플럭스를 사용해 웹 레이어 개발하기
19.5 웹플럭스 애플리케이션 보호하기
19.6 요약
부록 A 몽고DB 데이터베이스 설치하기
A.1 몽고DB 데이터베이스 다운로드하고 설치하기
A.2 몽고DB 데이터베이스에 연결하기
부록 B 이클립스 IDE에서 예제 프로젝트 임포트하기
B.1 이클립스 IDE와 톰캣 9 설치하기
B.2 예제 프로젝트를 이클립스 IDE로 임포트하기
B.3 이클립스 IDE와 톰캣 9 서버 설정하기
B.4 웹 프로젝트를 톰캣 9 서버에 배포하기
부록 C 스프링 부트 2 소개와 스프링 부트 테스트
C.1 들어가며
C.2 스프링 부트 애플리케이션 만들기
C.3 스프링 부트의 동작
C.4 MyBank 애플리케이션 개발 - TDD를 사용한 웹 API 개발
C.5 요약