본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

토비의 스프링 3.1 Vol. 2 스프링의 기술과 선택 상세페이지

컴퓨터/IT 개발/프로그래밍

토비의 스프링 3.1 Vol. 2 스프링의 기술과 선택

소장종이책 정가40,000
전자책 정가30%28,000
판매가28,000
토비의 스프링 3.1 Vol. 2 스프링의 기술과 선택 표지 이미지

토비의 스프링 3.1 Vol. 2 스프링의 기술과 선택작품 소개

<토비의 스프링 3.1 Vol. 2 스프링의 기술과 선택> [ 이 책에서 다루는 내용 ]

★ DIJ/JavaConfig, OXM, @MVC, SpEL, Task, REST 등의 스프링 3.0의 최신 기술 소개
Java EE 6의 JSR-303과 자바코드를 이용한 최첨단 DI기술, XML 매핑을 위한 OXM, 기존 MVC를 완벽하게 대체한 강력한 웹 프레임워크인 @MVC, 스프링 공식 EL인 SpEL, JSR-303(BeanValidation)과 새로운 컨버터와 포매터 활용방법, 각종 비동기 작업을 위한 Task 기능, REST 템플릿 사용법 등 스프링 3.0의 새로운 기능을 기존 스프링 기술과 함께 상세히 소개한다.

★ 런타임 추상화, 프로파일, 프로퍼티 소스, 캐시 추상화, 발전된 @MVC, 플래시 맵 등 스프링 3.1의 최신 기술 소개
프로파일을 이용한 다이내믹한 빈 설정 기술, 통합된 프로퍼티 소스, 더욱 강력해진 @MVC 핸들러 작성, 플래시 맵 활용 방법과 AOP를 이용한 캐시 추상화 등 스프링 3.1의 최신 기술과 달라진 점을 자세히 소개한다.

★ 스프링 기술 선택을 위한 상세한 기술 비교, 선택 기준 제시
같은 기술에도 수많은 옵션을 제공하는 스프링의 특성 때문에 기술 선택에 고민하는 개발자를 위해서 스프링이 제공하는 다양한 기술 옵션을 비교하고, 환경에 따른 적절한 선택을 위한 기준을 제공해준다.

★ @Enable 빈 설정 모듈화 기법 소개
스프링 3.1의 최신 자바코드 빈 설정 기법을 이용해서 재사용 가능한 빈 설정 모듈을 만드는 방법을 스프링 3.1에 적용된 실전 예를 기준으로 상세하게 설명한다.

★ 스프링 애플리케이션 아키텍처 설계와 스프링 기반 프레임워크 제작을 위한 완벽 가이드
스프링을 이용한 엔터프라이즈 애플리케이션 아키텍처 작성을 위한 다양한 아키텍처 소개와 전략 분석, 스프링을 기반으로 한 사내 프레임워크 제작에 꼭 필요한 스프링 확장 기법을 소개한다.


[ 이 책의 구성 ]

스프링이 공개된 지 이미 9년째이고 많은 개발자가 스프링을 사용해 애플리케이션을 개발해오고 있다. 그럼에도 적지 않은 수의 개발자들은 스프링의 핵심 가치와 혜택을 충분히 누리지 못하는 듯하다. 스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링을 효과적으로 익히려면 다음의 세 가지 단계를 통해 스프링을 학습해야 한다.

▶ 스프링의 핵심 가치와 원리에 대한 이해
▶ 스프링의 기술에 대한 지식과 선택 기준 정립
▶ 스프링의 적용과 확장

이 책은 이 세 가지 단계를 따라서 스프링을 공부하려는 사람을 대상으로 쓰여진 책으로, Vol. 1에서는 첫 단계인 ‘핵심 가치와 원리에 대한 이해’를 중심으로 하고, Vol. 2에서는 두 번째 단계인 ‘스프링 기술에 대한 지식과 선택’을 집중해서 다룬다. 세 번째 단계인 확장에 대해서는 책의 여러 곳에서 다양한 전략과 예제, 힌트를 제공한다. 하지만 본격적으로 응용과 확장에 대한 지식을 쌓는 일은 독자들의 몫이다. 각자의 상황에 맞게 처음 두 단계에서 배운 지식을 응용해 스프링을 확장해보는 훈련을 해야 한다.

《Vol. 2 스프링의 기술과 선택》의 구성과 예제

Vol. 2에서는 스프링 프레임워크를 이용해 애플리케이션을 작성하는 다양한 방법을 살펴보고, 각 방법의 특징과 장단점을 설명한다. Vol. 2는 각 장마다 개별 기술을 독립적으로 설명하므로 원하는 장부터 살펴봐도 상관없다. 다만 1장은 스프링을 이용해 애플리케이션을 만들 때 반드시 알아야 할 애플리케이션 구조와 설정 방법을 설명하므로 다른 장으로 넘어가기 전에 먼저 살펴보기를 권장한다.

Vol. 2는 스프링이 제공하는 기술의 종류와 특징, 사용법에 대한 설명에 집중하고, 이를 이용해서 만들어지는 애플리케이션 코드의 패턴과 구조에 관한 내용은 Vol. 1에서 자세히 다루므로 Vol. 2에서 다루지 않는다. Vol. 2의 내용은 Vol. 1에서 설명한 내용을 이해하고 있다는 전제하에 작성됐다. 스프링의 개발 기술 내용을 빠르게 살펴보고 싶다면 Vol. 1을 보지 않고 Vol. 2를 먼저 봐도 되지만, 가능한 한 Vol. 1을 먼저 공부하고 Vol. 2의 내용을 보기를 권장한다.

Vol. 2의 내용은 대부분 스프링 3.0과 스프링 3.1 버전에 동일하게 적용할 수 있다. 스프링 3.1에만 적용되는 내용은 각 장의 마지막 절에서 따로 설명한다.

Vol. 2의 예제 코드는 두 가지로 구성된다.

첫째는 각 장에서 설명하는 스프링 기술의 사용 방법을 담은 학습 테스트다. 책에는 설명에 꼭 필요한 일정 분량의 코드만 소개되어 있다. 각 기술의 사용 방법을 담은 좀 더 다양한 코드는 소스코드 파일에 담긴 learningtest 프로젝트의 학습 테스트 코드를 참고하면 된다. 테스트 코드이지만 기술 학습용으로 작성됐으므로 이를 Vol. 2의 내용과 함께 살펴보면 스프링 기술의 사용 방법에 대한 아이디어를 얻을 수 있을 것이다. learningtest 프로젝트는 스프링 3.0으로 작성된 것과 스프링 3.1로 작성된 것, 두 가지가 제공된다.

둘째는 스프링 웹 기술인 스프링 MVC를 이용해 만든 웹 애플리케이션 예제인 springusergroup 프로젝트다. 이 프로젝트는 서버에서 동작하도록 만들어진 완전한 애플리케이션이다. 그렇다고 이 예제 프로젝트를 그대로 가져다 실전에서 활용하면 될 것이라고 기대해선 안 된다. 프로젝트를 구성할 때 참고하거나 프로젝트의 각 기술 영역에 대한 접근 방법이 자신의 상황과 일치한다면 일부를 활용할 수는 있겠지만, Vol. 2에서 줄곧 설명하는 대로 아키텍처와 계층구조, 사용할 기술, 설정 방법, 각 기술의 접근 방법은 각자의 상황과 환경에 맞게 선택해야 한다. springusergroup 예제의 목적은 스프링 MVC를 사용한 웹 프레젠테이션 계층의 개발과 이를 다른 계층과 어떻게 접목하는지에 관한 것임을 기억하자.

예제 프로젝트를 설치하고 사용하는 방법은 각 프로젝트 폴더의 readme.txt 파일을 참고하면 된다. 모든 예제 프로젝트는 JavaSE 1.6과 이클립스 기반의 STS(SpringSource Tool Suite)에서 작성됐다. STS는 http://www.springsource.com/products/sts에서 다운로드 받을 수 있다.

책의 예제에 사용한 DB는 MySQL 5.1 버전이다. 하지만 적절한 JDBC 드라이버를 추가하고 DB 연결정보를 수정해주면 그 밖의 DB를 사용해서 예제를 실행할 수 있다. DB를 변경하는 방법도 프로젝트 루트의 readme.txt 파일에 나와 있다.




출판사 서평

XML 대신 자바코드를 이용해서 스프링을 개발할 수 있는 최신 빈 설정 기법부터 편리한 RESTful 스타일의 웹 컨트롤러 작성 기법까지 스프링 3.0과 스프링 3.1의 최신 기술을 상세하게 소개하고 그 중에서 자신에게 맞는 최적의 기술을 선택하고 조합할 수 있는 기준과 활용전략을 다룬다.

『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 이르기까지 모두 참고할 수 있는 스프링 완벽 바이블이다.

대한민국 전자정부 표준 프레임워크 스프링을 설명하는 No. 1 베스트셀러!



저자 소개

호주의 IT 서비스 기업인 이프릴의 대표 컨설턴트다. 엔터프라이즈 오픈소스 커뮤니티인 오픈시드의 대표이며 한국스프링사용자모임(KSUG)의 공동설립자이기도 하다. 8비트 컴퓨터 시절 프로그래밍의 매력에 빠져 10여 년간 취미로 프로그래밍을 즐겨오다 전문 개발자의 길로 들어서서 19년째 소프트웨어 개발과 교육, 컨설팅 일을 해오고 있다. 2004년부터 스프링을 이용해서 기업과 학교, 인터넷 서비스 업체의 시스템을 개발해왔고 스프링을 기반으로 한 애플리케이션 프레임워크 제작 컨설팅과 스프링 개발자 교육을 해오고 있다. JCO 컨퍼런스에서 세 차례 스프링을 주제로 발표했고 기묘, 이프릴, KSUG 등을 통해 스프링 세미나를 진행하기도 했다. 스프링과 오픈소스 기술에 관련된 정보와 경험을 공유하는 블로그(toby.epril.com)를 운영하고 있다.

목차

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
SimpleJdbcCall 생성
SimpleJdbcCall 실행
2.2.5 스프링 JDBC DAO
2.3 iBatis SqlMaps
2.3.1 SqlMapClient 생성
iBatis 설정파일과 매핑파일
SqlMapClient를 위한 SqlMapClientFactoryBean 등록
2.3.2 SqlMapClientTemplate
등록, 수정, 삭제
조회
SqlMapClientCallback
2.4 JPA
2.4.1 EntityManagerFactory 등록
LocalEntityManagerFactoryBean
JavaEE 5 서버가 제공하는 EntityManagerFactory
LocalContainerEntityManagerFactoryBean
트랜잭션 매니저
2.4.2 EntityManager와 JpaTemplate
JpaTemplate
애플리케이션 관리 EntityManager와 @PersistenceUnit
컨테이너 관리 EntityManager와 @PersistenceContext
@PersistenceContext와 확장된 퍼시스턴스 컨텍스트
JPA 예외 변환
JPA 예외 변환 AOP
2.5 하이버네이트
2.5.1 SessionFactory 등록
LocalSessionFactoryBean
AnnotationSessionFactoryBean
트랜잭션 매니저
2.5.2 Session과 HibernateTemplate
HibernateTemplate
SessionFactory.getCurrentSession()
2.6 트랜잭션
2.6.1 트랜잭션 추상화와 동기화
PlatformTransactionManager
트랜잭션 매니저의 종류
2.6.2 트랜잭션 경계설정 전략
코드에 의한 트랜잭션 경계설정
선언적 트랜잭션 경계설정
프록시 모드: 인터페이스와 클래스
AOP 방식: 프록시와 AspectJ
2.6.3 트랜잭션 속성
트랜잭션 전파: propagation
트랜잭션 격리수준: isolation
트랜잭션 제한시간: timeout
읽기전용 트랜잭션: read-only, readOnly
트랜잭션 롤백 예외: rollback-for, rollbackFor, rollbackForClassName
트랜잭션 커밋 예외: no-rollback-for, noRollbackFor, noRollbackForClassName
2.6.4 데이터 액세스 기술 트랜잭션의 통합
트랜잭션 매니저별 조합 가능 기술
ORM과 비 ORM DAO를 함께 사용할 때의 주의사항
2.6.5 JTA를 이용한 글로벌/분산 트랜잭션
독립형 JTA 트랜잭션 매니저
WAS 트랜잭션 매니저의 고급 기능 사용하기
2.7 스프링 3.1의 데이터 액세스 기술
2.7.1 persistence.xml 없이 JPA 사용하기
2.7.2 하이버네이트 4 지원
LocalSessionFactoryBean
LocalSessionFactoryBuilder
2.7.3 @EnableTransactionManager 295
2.8 정리
3장 스프링 웹 기술과 스프링 MVC
3.1 스프링의 웹 프레젠테이션 계층 기술
3.1.1 스프링에서 사용되는 웹 프레임워크의 종류
스프링 웹 프레임워크
스프링 포트폴리오 웹 프레임워크
스프링을 기반으로 두지 않는 웹 프레임워크
3.1.2 스프링 MVC와 DispatcherServlet 전략
DispatcherServlet과 MVC 아키텍처
DispatcherServlet의 DI 가능한 전략
3.2 스프링 웹 애플리케이션 환경 구성
3.2.1 간단한 스프링 웹 프로젝트 생성
루트 웹 애플리케이션 컨텍스트
서블릿 웹 애플리케이션 컨텍스트 등록
스프링 웹 프로젝트 검증
3.2.2 스프링 웹 학습 테스트
서블릿 테스트용 목 오브젝트
테스트를 위한 DispatcherServlet 확장
ConfigurableDispatcherServlet을 이용한 스프링 MVC 테스트
편리한 DispatcherServlet 테스트를 위한 AbstractDispatcherServletTest
3.3 컨트롤러
3.3.1 컨트롤러의 종류와 핸들러 어댑터
Servlet과 SimpleServletHandlerAdapter
HttpRequestHandler와 HttpRequestHandlerAdapter
Controller와 SimpleControllerHandlerAdapter
AnnotationMethodHandlerAdapter
3.3.2 핸들러 매핑
BeanNameUrlHandlerMapping
ControllerBeanNameHandlerMapping
ControllerClassNameHandlerMapping
SimpleUrlHandlerMapping
DefaultAnnotationHandlerMapping
기타 공통 설정정보
3.3.3 핸들러 인터셉터
HandlerInterceptor
핸들러 인터셉터 적용
3.3.4 컨트롤러 확장
커스텀 컨트롤러 인터페이스와 핸들러 어댑터 개발
3.4 뷰
3.4.1 뷰
InternalResourceView와 JstlView
RedirectView
VelocityView, FreeMarkerView
MarshallingView
AbstractExcelView, AbstractJExcelView, AbstractPdfView
AbstractAtomFeedView, AbstractRssFeedView
XsltView, TilesView, AbstractJasperReportsView
MappingJacksonJsonView
3.4.2 뷰 리졸버
InternalResourceViewResolver
VelocityViewResolver, FreeMarkerViewResolver
ResourceBundleViewResolver, XmlViewResolver, BeanNameViewResolver
ContentNegotiatingViewResolver
3.5 기타 전략
3.5.1 핸들러 예외 리졸버
AnnotationMethodHandlerExceptionResolver
ResponseStatusExceptionResolver
DefaultHandlerExceptionResolver
SimpleMappingExceptionResolver
3.5.2 지역정보 리졸버
3.5.3 멀티파트 리졸버
RequestToViewNameTranslator
3.6 스프링 3.1의 MVC
3.6.1 플래시 맵 매니저 전략
플래시 맵
플래시 맵 매니저
플래시 맵 매니저 전략
3.6.2 WebApplicationInitializer를 이용한 컨텍스트 등록
루트 웹 컨텍스트 등록
서블릿 컨텍스트 등록
3.7 정리
4장 스프링 @MVC
4.1 @RequestMapping 핸들러 매핑
4.1.1 클래스/메소드 결합 매핑정보
@RequestMapping 애노테이션
타입 레벨 매핑과 메소드 레벨 매핑의 결합
메소드 레벨 단독 매핑
타입 레벨 단독 매핑
4.1.2 타입 상속과 매핑
매핑정보 상속의 종류
제네릭스와 매핑정보 상속을 이용한 컨트롤러 작성
4.2 @Controller
4.2.1 메소드 파라미터의 종류
HttpServletRequest, HttpServletResponse
HttpSession
WebRequest, NativeWebRequest
Locale
InputStream, Reader
OutputStream, Writer
@PathVariable
@RequestParam
@CookieValue
@RequestHeader
Map, Model, ModelMap
@ModelAttribute
Errors, BindingResult
SessionStatus
@RequestBody
@Value
@Valid
4.2.2 리턴 타입의 종류
자동 추가 모델 오브젝트와 자동생성 뷰 이름
ModelAndView
String
void
모델 오브젝트
Map/Model/ModelMap
View
@ResponseBody
4.2.3 @SessionAttributes와 SessionStatus
도메인 중심 프로그래밍 모델과 상태 유지를 위한 세션 도입의 필요성
@SessionAttributes
SessionStatus
등록 폼을 위한 @SessionAttributes 사용
스프링 목 오브젝트와 AbstractDispatcherServletTest를 이용해 세션 테스트 만들기
4.3 모델 바인딩과 검증
4.3.1 PropertyEditor
디폴트 프로퍼티 에디터
커스텀 프로퍼티 에디터
@InitBinder
WebBindingInitializer
프로토타입 빈 프로퍼티 에디터
4.3.2 Converter와 Formatter
Converter
ConversionService
Formatter와 FormattingConversionService
바인딩 기술의 적용 우선순위와 활용 전략
4.3.3 WebDataBinder 설정 항목
allowedFields, disallowedFields
requiredFields
fieldMarkerPrefix
fieldDefaultPrefix
4.3.4 Validator와 BindingResult, Errors
Validator
JSR-303 빈 검증 기능
BindingResult와 MessageCodeResolver
MessageSource
4.3.5 모델의 일생
HTTP 요청으로부터 컨트롤러 메소드까지
컨트롤러 메소드로부터 뷰까지
4.4 JSP 뷰와 form 태그
4.4.1 EL과 spring 태그 라이브러리를 이용한 모델 출력
JSP EL
스프링 SpEL
지역화 메시지 출력
4.4.2 spring 태그 라이브러리를 이용한 폼 작성
단일 폼 모델
《spring:bind》와 BindingStatus
4.4.3 form 태그 라이브러리
《form:form》
《form:input》
《form:label》
《form:errors》
《form:hidden》
《form:password》, 《form:textarea》
《form:checkbox》, 《form:checkboxes》
《form:radiobutton》, 《form:radiobuttons》
《form:select》, 《form:option》, 《form:options》
커스텀 UI 태그 만들기
4.5 메시지 컨버터와 AJAX
4.5.1 메시지 컨버터의 종류
JSON을 이용한 AJAX 컨트롤러: GET + JSON
JSON을 이용한 AJAX 컨트롤러: POST(JSON) + JSON
4.6 mvc 네임스페이스
《mvc:annotation-driven》
《mvc:interceptors》
《mvc:view-controller》
4.7 @MVC 확장 포인트
4.7.1 AnnotationMethodHandlerAdapter
SessionAttributeStore
WebArgumentResolver
ModelAndViewResolver
4.8 URL과 리소스 관리
4.8.1 《mvc:default-servlet-handler/》를 이용한 URL 관리
디폴트 서블릿과 URL 매핑 문제
《mvc:default-servlet-handler/》
4.8.2 《url:resource/》를 이용한 리소스 관리
4.9 스프링 3.1의 @MVC
4.9.1 새로운 RequestMapping 전략
@RequestMapping 메소드와 핸들러 매핑 전략의 불일치
HandlerMethod
@RequestMapping 전략 선택
4.9.2 @RequestMapping 핸들러 매핑: RequestMappingHandlerMapping
요청 조건
요청 조건의 결합 방식
4.9.3 @RequestMapping 핸들러 어댑터
파라미터 타입
확장 포인트
4.9.4 @EnableWebMvc와 WebMvcConfigurationSupport를 이용한 @MVC 설정
@EnableWebMvc와 WebMvcConfigurer
@MVC 설정자 빈 등록 방법
@MVC 전략용 설정 빈 등록
4.10 정리
5장 AOP와 LTW
5.1 애스펙트 AOP
5.1.1 프록시 기반 AOP
프록시 기반 AOP 개발 스타일의 종류와 특징
자동 프록시 생성기와 프록시 빈
프록시의 종류
5.1.2 @AspectJ AOP
@AspectJ를 이용하기 위한 준비사항
@Aspect 클래스와 구성요소
포인트컷 메소드와 애노테이션
어드바이스 메소드와 애노테이션
파라미터 선언과 바인딩
@AspectJ를 이용한 AOP의 학습 방법과 적용 전략
5.2 AspectJ와 @Configurable
5.2.1 AspectJ AOP
5.2.2 빈이 아닌 오브젝트에 DI 적용하기
DI 애스펙트
@Configurable
로드타임 위버와 자바 에이전트
5.3 로드타임 위버(LT)
5.4 스프링 3.1의 AOP와 LTW
5.4.1 AOP와 LTW를 위한 애노테이션
@EnableAspectJAutoProxy
@EnableLoadTimeWeaving
5.5 정리
6장 테스트 컨텍스트 프레임워크
6.1 테스트 컨텍스트 프레임워크
6.1.1 테스트 프레임워크와 컨텍스트 테스트
테스트용 애플리케이션 컨텍스트 캐싱과 설정파일
컨텍스트 설정의 상속과 컨텍스트 로더
6.1.2 테스트 코드의 테스트 컨텍스트 활용
테스트 컨텍스트로부터 DI 받기
공유 컨텍스트 사용 시 주의할 점
6.2 트랜잭션 지원 테스트
6.2.1 테스트의 트랜잭션 지원 필요성
DAO 단독 테스트
롤백 테스트
6.2.2 트랜잭션 지원 테스트 작성 방법
트랜잭션 매니저
@Transactional 테스트
ORM 롤백 트랜잭션 테스트의 주의사항
트랜잭션 지원 테스트에 DBUnit 이용하기
6.3 스프링 3.1의 컨텍스트 테스트 프레임워크
6.3.1 자바 코드 설정정보와 프로파일 활용
@Configuration 클래스 테스트
@ActiveProfile
6.4 정리
7장 스프링의 기타 기술과 효과적인 학습 방법
7.1 스프링 기술과 API를 효과적으로 학습하는 방법
7.1.1 빈으로 등록되는 스프링 클래스와 DI
구현 인터페이스 분석
프로퍼티 분석
DI/확장 포인트 분석
7.2 IoC 컨테이너 DI
7.2.1 BeanPostProcessor와 BeanFactoryPostProcessor
BeanPostProcessor
BeanFactoryPostProcessor
7.3 SpEL
7.3.1 SpEL 사용 방법
7.4 OXM
7.4.1 Marshaller/Unmarshaller 인터페이스
7.4.2 OXM 기술 어댑터 클래스
7.5 리모팅과 웹 서비스, EJB
7.5.1 익스포터와 프록시
익스포터
프록시
7.5.2 RESTful 서비스 템플릿
7.5.3 EJB 서비스 이용
7.6 태스크 실행과 스케줄링
7.6.1 TaskExecutor 서비스 추상화
7.6.2 TaskScheduler
7.6.3 task 네임스페이스
《task:executor》
《task:scheduler》
《task:scheduled-tasks》와 《task:scheduled》
7.6.4 애노테이션을 이용한 스케줄링과 비동기 태스크 실행
@Scheduled
@Async
7.7 캐시 추상화(스프링 3.1)
7.7.1 애노테이션을 이용한 캐시 속성 부여
@Cacheable
@CacheEvict와 @CachePut
애노테이션을 이용한 캐시 기능 설정
7.7.2 캐시 매니저
7.8 @Enable 애노테이션을 이용한 빈 설정정보 모듈화
7.8.1 @Import와 @Configuration 상속
@Import를 이용한 단순 재사용
@Configuration 클래스 상속과 오버라이딩을 이용한 확장 방법
7.8.2 @Enable 전용 애노테이션과 ImportAware
@Enable 애노테이션 적용
ImportAware 인터페이스를 이용한 옵션 지정
7.8.3 빈 설정자
7.8.4 ImportSelector와 ImportBeanDefinitionRegistrar
7.9 정리
부록 A 스프링 모듈
A.1 스프링 모듈의 종류와 특징
A.1.1 스프링 모듈 이름
A.1.2 스프링 모듈 추가
수동 추가
Maven/Ivy 자동 추가
A.1.3 스프링 모듈 목록
A.2 스프링 모듈의 의존관계
A.2.1 모듈별 의존관계
ASM 모듈
Core 모듈
Beans 모듈
AOP 모듈
Expression 모듈
Context 모듈
Context.Support 모듈
Transaction 모듈
JDBC 모듈
ORM 모듈
Web 모듈
Web.Servlet 모듈
Web.Portlet 모듈
Web.Struts 모듈
JMS 모듈
Aspects 모듈
Instrument 모듈
Instrument.Tomcat 모듈
Test 모듈
부록 B 스프링 의존 라이브러리
B.1 의존 라이브러리의 종류와 특징
B.1.1 의존 라이브러리 이름
B.1.2 의존 라이브러리 추가
수동 추가
자동 추가
B.2 모듈별 의존 라이브러리 의존관계
B.2.1 필수 라이브러리
B.2.2 모듈별 선택 라이브러리
ASM 모듈
Core 모듈
Beans 모듈
AOP 모듈
Expression 모듈
Context 모듈
Context.Support 모듈
Transaction 모듈
JDBC 모듈
ORM 모듈
Web 모듈
Web.Servlet 모듈
Web.Portlet 모듈
Web.Struts 모듈
JMS 모듈
Aspects 모듈
Instrument 모듈
Instrument.Tomcat 모듈


리뷰

구매자 별점

5.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

3명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전