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 애플리케이션 성능 측정하기
? 무엇을 측정할지 알아내기
? 필요한 데이터 셋 결정하기
? 데이터 접근 계층 개선하기
? 트랜잭션 관리 개선하기
? 원격 호출의 성능 제어
? 뷰 계층의 성능에 대한 이해
캐시 사용하기
성능 테스트
애플리케이션의 건강과 성능 측정
성능 최적화에 관한 더 많은 자료
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 애플리케이션 성능 측정하기
? 무엇을 측정할지 알아내기
? 필요한 데이터 셋 결정하기
? 데이터 접근 계층 개선하기
? 트랜잭션 관리 개선하기
? 원격 호출의 성능 제어
? 뷰 계층의 성능에 대한 이해
캐시 사용하기
성능 테스트
애플리케이션의 건강과 성능 측정
성능 최적화에 관한 더 많은 자료