책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
· ISBN : 9788992939232
· 쪽수 : 1232쪽
책 소개
목차
1부 스프링 시작하기
01장 스프링 소개
스프링이란?
-의존성 주입을 넘어서
-스프링과 Aspect-Oriented Programming
-스프링에서의 데이터 접근
-Java EE의 단순화 및 연동
-잡(job) 스케줄링 지원
-메일 지원
-동적 언어
-원격 지원
-트랜잭션 관리
-스프링 MVC 프레임워크
-스프링 웹 플로
-AJAX
-국제화
-예외 처리 단순화
스프링 프로젝트
-스프링의 기원
-스프링 커뮤니티
-마이크로소프트 닷넷용 스프링
-스프링 IDE
-스프링 시큐리티(예전 Acegi)
-스프링 대안책
예제 코드
02장 시작하기
스프링 프레임워크 가져오기
-CVS에서 스프링 체크아웃 하기
-스프링 소스코드 빌드하기
-스프링 배포판 검증하기
-스프링 패키징
-스프링 의존 라이브러리
-스프링 예제 애플리케이션
-스프링과 IDE 설정
Hello, World
"Hello, World"에 스프링 적용하기
-의존성 주입
-스프링의 영향력
03장 제어 역전 소개
IoC와 DI
IoC의 유형
-문맥에 따른 의존성 룩업
-생성자 DI
-세터 DI
-주입 vs. 룩업
-세터 주입 vs. 생성자 주입
스프링의 IoC
스프링을 사용하는 DI
-빈과 빈팩토리
-BeanFactory 구현체
-XML 빈 정의
-생성자 주입 사용하기
-주입 매개변수
-빈 작명 이해하기
-빈 인스턴스화 모드
-의존성 처리하기
-빈을 자동으로 연결하기
-의존성 확인하기
-빈 상속
04장 기초를 넘어서
스프링이 애플리케이션 이식성에 주는 영향
빈 생명 주기 관리
-빈 생성에 끼어들기
-빈 소멸에 끼어들기
빈이 스프링을 인식하도록 만들기
-BeanNameAware 인터페이스 사용하기
-BeanFactoryAware 인터페이스 사용하기
매소드 주입 사용하기
룩업 메서드 주입
메서드 교체
FactoryBean 사용하기
-MessageDigestFactoryBean
-FactoryBean에 직접 접근하기
BeanFactoryPostProcessor
BeanFactoryPostProcessor 구현하기
자바빈즈 PropertyEditor
-내장 프로퍼티에디터
-커스텀 프로퍼티에디터 만들기
BeanPostProcessor
-BeanPostProcessor 구현하기
-빈포스트프로세서 사용 시기
스프링 애플리케이션컨텍스트
-애플리케이션컨텍스트 구현체
-ApplicationContextAware 사용하기
-빈 초기화 제어하기
-애노테이션-기반 설정 사용하기
-MessageSource의 국제화
-MessageSource를 독립 애플리케이션에서 사용하기
-MessageSourceResolvable 인터페이스
-애플리케이션 이벤트 사용하기
-이벤트 사용에 대한 고려
-리소스 접근
05장 스프링 AOP 소개
AOP 개념
AOP 종류
-정적인 AOP
-동적인 AOP
-AOP 종류 선택하기
스프링에서 AOP
-AOP 진영
-AOP로 "Hello, World"
-스프링 AOP 아키텍처
-ProxyFactory 클래스
-스프링에서 어드바이스 만들기
어드바이저와 포인트컷
-Pointcut 인터페이스
-ComposablePointcut 사용하기
-포인트컷팅 요약
프록시에 관한 모든 것
-프록시 이해하기
-JDK 동적 프록시 사용하기
-CGLIB 프록시 사용하기
-프록시 성능 비교하기
-어떤 프록시를 사용해야 하는가?
06장 AOP 심화 학습
@AspectJ
@AspectJ 애스팩트를 보다 자세히
-포인트컷
-포인트컷 표현식
-포인트컷 표현식 살펴보기
-XML에서 @포인트컷 사용하기
-어드바이스 종류
-인자 바인딩
-Introduction
-애스팩트 라이프 사이클
AOP를 지원하는 프레임워크 서비스
-aop 네임스페이스를 사용하여 첫 번째 애스팩트 작성하기
-aop 네임스페이스에서 포인트컷
-aop 네임스페이스 사용하여 어드바이스 만들기
-aop 네임스페이스에서 Introduction
어떤 스타일을 사용해야 하는가?
스프링 AOP 프록시 사용하기
-프록시의 영향
AspectJ 연동
-첫 번째 애스팩트 작성하기
-예제 애플리케이션 컴파일하기
-AspectJ의 애스팩트 스코프
로드-타임 위빙
-여러분의 첫 번째 로드-타임 위빙 예제
-LoadTimeWeaver 룩업 전략
실용적인 AOP 사용처
-성능과 건강도 모니터링
07장 스프링 스키마와 네임스페이스
왜 새로운 설정인가?
스프링 2.5에 포함되어 있는 스키마
-beans 스키마
-context 스키마
-util 스키마
-tx 스키마
-aop 스키마
-jee 스키마
-lang 스키마
스키마 무대 뒤편에
커스텀 스키마
IDE 설정
08장 스프링 패턴
디렉터리 구조
-단순한 애플리케이션
-복잡한 애플리케이션
-패키지 만들기와 이름짓기
디자인 패턴 소개
-인터페이스 기반 프로그래밍
-생성 패턴
-구조 패턴
-행위 패턴
-템플릿 메서드
스프링 애플리케이션 패턴
-계층 구조 설계
-고성능 페이징
-다중 오류 보고
-사용자 인터페이스 트랜잭션
-백그라운드 프로세스
-이메일 통지
-에러 수집과 로깅
2부 데이터 접근
09장 JDBC 지원
JDBC 핵심 개념
-DriverManager와 Connections 사용하기
-PreparedStatement 사용하기
-CallableStatement 사용하기
-다른 JDBC 개념들
스프링 데이터 접근 지원에 대한 개념
JDBC 데이터 접근 지원
JdbcTemplate 사용하기
-JdbcTemplate.execute
-JdbcTemplate.query와 그 친구들
-JdbcTemplate.update
-JdbcTemplate.batchUpdate
RdbmsOperation 하위클래스
-sqlUpdate
-BatchSqlUpdate
-SqlCall과 StoredProcedure
-SqlQuery와 그 하위클래스들
-JdbcTemplate이냐 RdbmsOperation이냐?
대형 이진 객체
JdbcDaoSupport
간단한 스프링 JDBC
-간단한 스프링 JDBC
-SimpleJdbcCall
-SimpleJdbcInsert
-SimpleJdbcDaoSupport
10장 iBATIS 통합하기
iBATIS는 무엇인가?
-iBATIS 버전
-인프라스트럭처와 설정
매핑 파일
-sqlMap 파일
-iBATIS와 스프링 설정하기
데이터 질의
-간단한 질의
-일대일(1:1) 질의
-일대다(1:n) 질의
-다대다(m:n) 질의
데이터 갱신
데이터 삭제
데이터 삽입
iBATIS의 부족한 점은 무엇인가?
전반적인 성능
11장 하이버네이트 지원
하이버네이트 기초
패키징
하이버네이트 지원 소개
-하이버네이트 세션 사용하기
-HibernateDaoSupport 사용하기
-HibernateTemplate과 Session 중에 어떤 것을 사용할지 결정하기
엔터프라이즈 애플리케이션에서 하이버네이트 사용하기
-변경된 데이터 수정 방지하기
-객체 동일성
-트랜잭션 처리
-로딩 지연
-대규모 데이터 집합 다루기
-큰 객체 다루기
-하이버네이트와 다른 DAO 코드 조합하기
3부 엔터프라이즈 애플리케이션 컴포넌트
12장 스프링과 잡 스케줄링
JDK 타이머를 이용한 잡 스케줄링
-타이머 트리거 타입
-간단한 잡 만들기
-JDK 타이머 스케줄링에 대한 스프링 지원
OpenSymphony 쿼츠를 사용한 잡 스케줄링
쿼츠 소개하기
스프링의 쿼츠 지원
잡 스케줄링 고려사항
-스케줄러 선택하기
-Job 클래스에서 잡 로직을 분리해서 묶기
-작업 실행과 스레드 풀링
13장 스프링의 메일 지원
스프링 메일 API의 구조
-스프링을 사용하여 메일 설정하기
간단한 이메일 보내기
-프로그램상에서 이메일 구성하고 전송하기
-선언적으로 이메일 구성하기
-MIME 메시지의 작성과 전송
-엔터프라이즈 수준의 이메일 처리에 대해 자세히 알아보기
14장 동적 언어
지원되는 언어에 대한 기초적인 내용
-빈쉘
-그루비
-제이루비
동적언어를 스프링 빈으로 사용하기
-동적 언어 지원기능의 내부 동작 방식
-동적 언어로 작성된 빈의 프록시 생성하기
-성능
갱신이 가능한 빈
빈쉘로 구현한 빈
제이루비로 구현한 빈
그루비로 구현한 빈
스프링 애플리케이션에서 동적 언어의 일반적인 사용방법
4부 자바 EE 5
15장 스프링 리모팅 사용하기
스프링 리모팅 아키텍처
RMI
-임의의 서비스 노출시키기
-프록시를 사용한 RMI 서비스 접근
-CORBA 서비스 노출시키기
-CORBA 서비스 접속하기
JAX-RPC를 통한 웹 서비스
-아파치 Axis 소개
-ServletEndpointSupport로 웹 서비스 만들기
-프록시를 사용하여 RPC형식의 웹 서비스에 접근하기
-Axis 서비스에서 자바빈 이용하기
JAX-WS 웹 서비스 사용하기
-SimpleJaxWsServiceExporter를 사용하여 웹 서비스 노출하기
-XFire를 이용하여 웹 서비스 노출하기
-JAX-WS 웹 서비스에 접근하기
-다른 클라이언트에서 자바 웹 서비스에 접근하기
HTTP Invoker를 이용하여 웹 서비스 만들기
-간단한 서비스 노출시키기
-프록시를 이용하여 HTTP Invoker 서비스에 접근하기
-HTTP Invoker 서비스에서 임의 객체 사용하기
-HTTP 기본 인증 사용하기
리모팅 아키텍처 선정하기
16장 트랜잭션 관리
스프링 트랜잭션의 추상화 레이어
트랜잭션의 프로퍼티
-TransactionDefinition 인터페이스
-TransactionStatus 인터페이스 사용하기
-PlatformTransactionManager의 구현
트랜잭션 관리에 대한 예제 살펴보기
-트랜잭션이 적용되지 않은 코드
프로그래밍을 통한 트랜잭션 관리
-TransactionTemplate 클래스 사용하기
-프로그래밍을 통한 트랜잭션 관리에 대한 요약
선언을 통한 트랜잭션 관리
-TransactionProxyFactoryBean 사용하기
-트랜잭션 관리에 프록시를 사용하여 얻어지는 효과
AOP 트랜잭션 관리
-애노테이션 기반의 AOP 트랜잭션 관리
-XML AOP 트랜잭션 관리 사용하기
여러 개의 트랜잭션 리소스에 트랜잭션 적용하기
트랜잭션 동기화를 직접 구현하기
17장 스프링 MVC로 웹 애플리케이션 개발하기
MVC 아키텍처
스프링 MVC
-MVC 구현
핸들러 맵핑하기
스프링 컨트롤러
-AbstractController
-ParameterizableViewController
-MultiActionController
인터셉터
뷰, 로케일, 그리고 테마
-프로그래밍을 통해서 뷰 사용하기
-ViewResolver 사용하기
-현지화된 메세지를 사용하기
-로케일 사용하기
-테마 사용하기
-폼 컨트롤러 사용하기
-AbstractWizardFormController에 대해 알아보기
-파일 업로드
예외 처리하기
스프링과 다른 웹 기술들
-JSP 사용하기
-벨로시티 사용하기
-프리마커
-XSLT 뷰
-PDF 뷰 사용하기
-엑셀 뷰 사용하기
-타일즈와 스프링 통합하기
-JasperReports
설정을 대신하는 스프링 컨벤션
-Controller 컨벤션
-MultiActionController 컨벤션
-Model 컨벤션
-View 컨벤션
Controller 설정에 애노테이션 사용하기
-@Controller 애노테이션
-@RequestMapping 애노테이션
-@RequestParam 애노테이션
-@ModelAttribute 애노테이션
-애노테이션과 커맨드 컨트롤러 함께 사용하기
18장 스프링 웹 플로
스프링 웹 플로에 대한 소개
-핵심 개념
-스프링 웹 플로 다운로드하기
-스프링 웹 플로의 의존성
Hello, Web Flow!
상태에 대해서 알아보기
-뷰 상태
-디시젼 상태
-종료 상태
트랜지션 다루기
고급 수준의 개념
-표현 언어와 스코프
-액션 구현하기
-모델 데이터 바인딩하기
-부분적으로 뷰를 렌더링하기
-플로의 입력/출력 파라미터를 매핑하기
-서브플로 사용하기
스프링 웹 플로의 내부구조
-플로의 실행 구조
-플로 실행자
-플로 정의 레지스트리
-플로 실행 저장소
스프링 MVC와 통합하기
-플로 처리
-뷰 결정하기
스프링 보안모듈로 플로에 보안설정하기
-1단계: SecurityFlowExecutionListener 추가하기
-2단계: 기본적인 사용자 인증과 권한 인증의 처리
-3단계: 플로 정의에 보안 규칙 정의하기
문제 해결 방법
-상태 정보가 제공되도록 내비게이션 제어하기
-브라우저의 내비게이션 메뉴에 대한 지원과 중복 폼 전송
플로 정의 테스트하기
19장 스프링과 AJAX
DWR
Installing DWR
스프링에서 DWR 설정하기
완전한 예제
DWR 설정 테스트하기
완전한 예제 실행해보기
DWR 스크립트의 기본
-간단한 콜백 함수 사용하기
-메타 데이터 객체 호출하기
engine.js
-일괄 호출
-호출 순서
-오류와 경고 다루기
util.js
DWR과 보안
DWR의 장점과 단점
20장 스프링과 JMX
JMX 다시보기
빈 노출시키기
-MBeanExporter
-MBeanServerFactoryBean
-빈을 이미 존재하는 MBean 서버에 노출시키기
-빈 등록 시 동작
객체 이름 제어하기
관리 인터페이스 제어하기
-MBeanInfoAssembler 인터페이스
-MethodNameBasedMBeanInfoAssembler 인터페이스
-자바 인터페이스를 통해 관리 인터페이스 제어하기
-소스 레벨 메타 데이터 사용하기
스프링 JMX 원격 제어하기
-원격 MBean 노출시키기
-원격 MBean에 접근하기
-MBean 프록시하기
스프링 JMX에서의 통지
-통지 감지기
-통지 발행하기
21장 Spring에서 테스트하기
단위 테스트란?
단위 테스트
-웹 계층 단위 테스트
통합 테스트
-AbstractSpringContextTests 사용하기
-AbstractDependencyInjectionSpringContextTests 사용하기
-AbstractTransactionalSpringContextTests 사용하기
-AbstractAnnotationAwareTransactionalTests 사용하기
-JNDI
스프링 TestContext 프레임워크
-TestContext 프레임워크에서의 애플리케이션 컨텍스트와 의존성 주입
-TestContext 프레임워크와 트랜잭션
-지원 클래스
테스트 커버리지
22장 스프링 성능 튜닝
성능과 응답성
엔터프라이즈 애플리케이션 성능 문제 살펴보기
자바 EE 애플리케이션 성능 측정하기
-무엇을 측정할지 알아내기
-필요한 데이터 셋 결정하기
-데이터 접근 계층 개선하기
-트랜잭션 관리 개선하기
-원격 호출의 성능 제어
-뷰 계층의 성능에 대한 이해
캐시 사용하기
성능 테스트
애플리케이션의 건강과 성능 측정
성능 최적화에 관한 더 많은 자료