목차
Chapter 1 들어가며
- 스프링이란
- 이 책의 범위
- 코딩을 위한 준비물
Chapter 2 스프링 시작하기
- 스프링 프로젝트 시작하기
- 스프링은 객체 컨테이너
Chapter 3 스프링 DI
- 의존이란?
- DI를 통한 의존 처리
- DI와 의존 객체 변경의 유연함
- 예제 프로젝트 만들기
- 객체 조립기
- 스프링의 DI 설정
- @Configuration 설정 클래스의 @Bean 설정과 싱글톤
- 두 개 이상의 설정 파일 사용하기
- getBean() 메서드 사용
- 주입 대상 객체를 모두 빈 객체로 설정해야 하나?
Chapter 4 의존 자동 주입
- 예제 프로젝트 준비
- @Autowired 애노테이션을 이용한 의존 자동 주입
- @Qualifier 애노테이션을 이용한 의존 객체 선택
- 상위/하위 타입 관계와 자동 주입
- @Autowired 애노테이션의 필수 여부
- 자동 주입과 명시적 의존 주입 간의 관계
Chapter 5 컴포넌트 스캔
- @Component 애노테이션으로 스캔 대상 지정
- @ComponentScan 애노테이션으로 스캔 설정
- 예제 실행
- 스캔 대상에서 제외하거나 포함하기
- 컴포넌트 스캔에 따른 충돌 처리
Chapter 6 빈 라이프사이클과 범위
- 컨테이너 초기화와 종료
- 스프링 빈 객체의 라이프사이클
- 빈 객체의 생성과 관리 범위
Chapter 7 AOP 프로그래밍
- 프로젝트 준비
- 프록시와 AOP
- 스프링 AOP 구현
- 프록시 생성 방식
Chapter 8 DB 연동
- JDBC 프로그래밍의 단점을 보완하는 스프링
- 프로젝트 준비
- DataSource 설정
- JdbcTemplate을 이용한 쿼리 실행
- MemberDao 테스트하기
- 스프링의 익셉션 변환 처리
- 트랜잭션 처리
- 전체 기능 연동한 코드 실행
Chapter 9 스프링 MVC 시작하기
- 프로젝트 생성
- 이클립스 톰캣 설정
- 스프링 MVC를 위한 설정
- 코드 구현
- 실행하기
- 정리
Chapter 10 스프링 MVC 프레임워크
동작 방식
- 스프링 MVC 핵심 구성 요소
- DispatcherServlet과 스프링 컨테이너
- @Controller를 위한 HandlerMapping과 HandlerAdapter
- WebMvcConfigurer 인터페이스와 설정
- JSP를 위한 ViewResolver
- 디폴트 핸들러와 HandlerMapping의 우선순위
- 직접 설정 예
- 정리
Chapter 11 MVC 1 : 요청 매핑,
커맨드 객체, 라다이렉트, 폼 태그, 모델
- 프로젝트 준비
- 요청 매핑 애노테이션을 이용한 경로 매핑
- GET과 POST 구분: @GetMapping, @PostMapping
- 요청 파라미터 접근
- 리다이렉트 처리
- 커맨드 객체를 이용해서 요청 파라미터 사용하기
- 뷰 JSP 코드에서 커맨드 객체 사용하기
- @ModelAttribute 애노테이션으로 커맨드 객체 속성 이름 변경
- 커맨드 객체와 스프링 폼 연동
- 컨트롤러 구현 없는 경로 매핑
- 주요 에러 발생 상황
- 커맨드 객체 : 중첩·콜렉션 프로퍼티
- Model을 통해 컨트롤러에서 뷰에 데이터 전달하기
- 주요 폼 태그 설명
Chapter 12 MVC 2 : 메시지,
커맨드 객체 검증
- 프로젝트 준비
- [spring:message] 태그로 메시지 출력하기
- 커맨드 객체의 값 검증과 에러 메시지 처리
- 글로벌 범위 Validator와 컨트롤러 범위 Validator
- Bean Validation을 이용한 값 검증 처리
Chapter 13 MVC 3 : 세션,
인터셉터, 쿠키
- 프로젝트 준비
- 로그인 처리를 위한 코드 준비
- 컨트롤러에서 HttpSession 사용하기
- 비밀번호 변경 기능 구현
- 인터셉터 사용하기
- 컨트롤러에서 쿠키 사용하기
Chapter 14 MVC 4 : 날짜 값 변환,
@PathVariable, 익셉션 처리
- 프로젝트 준비
- 날짜를 이용한 회원 검색 기능
-
- 커맨드 객체 Date 타입 프로퍼티 변환 처리
- @DateTimeFormat
- 변환 처리에 대한 이해
- MemberDao 클래스 중복 코드 정리 및 메서드 추가
- @PathVariable을 이용한 경로 변수 처리
- 컨트롤러 익셉션 처리하기
Chapter 15 간단한
웹 어플리케이션의 구조
- 간단한 웹 어플리케이션의 구성 요소
- 서비스의 구현
- 컨트롤러에서의 DAO 접근
- 패키지 구성
Chapter 16 JSON 응답과 요청 처리
- JSON 개요
- Jackson 의존 설정
- @RestController로 JSON 형식 응답
- @RequestBody로 JSON 요청 처리
- ResponseEntity로 객체 리턴하고 응답 코드 지정하기
Chapter 17 프로필과 프로퍼티 파일
- 프로필
- 프로퍼티 파일을 이용한 프로퍼티 설정
Chapter 18 마치며
부록 A 메이븐 기초 안내
- 메이븐 아키타입을 이용한 프로젝트 생성하기
- 메이븐 프로젝트의 기본 디렉토리 구조
- 자바 버전 수정
- 컴파일해보기/ 테스트 실행해보기/패키지해보기
- POM 파일 기본
- 의존 설정
- 원격 리포지토리와 로컬 리포지토리
- 메이븐 라이프사이클(Lifecycle)과 플러그인 실행
부록 B 스프링 부트 소개
- 부트 프로젝트 생성
- 간단한 JSON 응답 컨트롤러 생성과 실행
- DB 연동 설정
- 실행 가능한 패키지 생성
- 참고
부록 C 타임리프 연동
- 타임리프 개요
- 스프링 MVC와 타임리프 연동 설정