스프링 애플리케이션 개발
도서명:스프링 애플리케이션 개발
저자/출판사:라비,칸트,소니/에이콘출판
쪽수:552쪽
출판일:2016-08-17
ISBN:9788960778894
목차
1장. 스프링 프레임워크 소개
__스프링 소개
____스프링의 주요 특징
____스프링의 그 밖의 특징
__스프링 프레임워크의 발전
__스프링 프레임워크 구조
____스프링 코어 컨테이너
____AOP 모듈
____데이터 접근/통합
____웹 모듈
____테스트 모듈
__스프링 프레임워크 사용의 장점
__스프링에서 애플리케이션 생성
____스프링 JAR 파일 획득
____스프링 패키지의 이해
____STS
____스프링 애플리케이션
________스프링 프로젝트 생성
________라이브러리 추가
________소스 파일 생성
________스프링 빈 설정 파일 생성
________프로그램 실행
__연습문제
__요약
2장. 제어역전
__제어역전의 이해
____컨테이너의 의미
____스프링 컨테이너
________빈
________BeanFactory
________ApplicationContext
__의존성 주입
____스프링에서의 의존성 주입
________Has-A 관계
________생성자 기반의 의존성 주입
________세터 기반 의존성 주입
____내부 빈 주입
____스프링에서의 널과 빈 문자열 값 주입
________사례 1 - 빈 문자열 주입
________사례 2 - 널 값 주입
__빈 정의 상속
____추상화 상속
__스프링의 오토와이어링
____오토와이어링 모드
________옵션 없는 오토와이어링 사용
________byName 옵션을 사용하는 오토와이어링
________byType 옵션을 사용하는 오토와이어링
________생성자를 사용하는 오토와이어링
__빈의 스코프
____싱글톤
____프로토타입
____리퀘스트
____세션
____글로벌 세션
__스프링 빈의 생명주기
____초기화
____활성화
____제거
____초기화 콜백
________org.springframework.beans.factory.InitializingBean 인터페이스 구현
________XML 설정에서의 init-method 사용
____제거 콜백
________org.springframework.beans.factory.DisposableBean 인터페이스 구현
________XML 설정에서의 destroy-method 사용
__연습문제
__요약
3장. 스프링에서의 DAO와 JDBC
__데이터베이스 개요
__DAO 디자인 패턴
____DAO 계층
__스프링을 사용하지 않는 JDBC
____샘플 코드
________프로젝트에 특정 데이터베이스 드라이버 추가
________애플리케이션의 디렉토리 구조
__스프링 JDBC 패키지
__스프링에서의 JDBC
____DataSource
____DAO 클래스의 DataSource
________애플리케이션의 디렉토리 구조
__JdbcTemplate의 의미
____스프링 빈과 같은 JdbcTemplate 객체 구성
________Spring.xml 파일
____JdbcTemplate 클래스가 제공하는 기능
________조회
________수정
________그 밖의 JdbcTemplate 연산자
____애플리케이션의 디렉토리 구조
________Employee.java 파일
________EmployeeDao.java 파일
________EmployeeDaoImpl.java 파일
__스프링 JDBC 일괄작업 작업
____애플리케이션의 디렉토리 구조
________EmployeeDaoImpl.java 파일
________HrPayrollBatchUpdate.java 파일
__저장 프로시저 호출
____SimpleJdbcCall 클래스의 사용
________저장 프로시저 호출
__연습문제
__요약
4장. 스프링과 하이버네이트 연동
__객체/관계 매핑을 사용하는 이유
__ORM과 O/RM, O/R 매핑 소개
__하이버네이트 소개
____하이버네이트 아키텍처
________설정
________세션 팩토리
________________세션
________트랜잭션
________질의
________기준
________영속성 객체
__하이버네이트와 스프링 프레임워크 통합
____예제 코드에서 사용할 샘플 데이터
____하이버네이트 통합
____스프링-하이버네이트 프로젝트에 필요한 JAR
____스프링에서 하이버네이트 SessionFactory 설정
________하이버네이트용 XML 스프링 설정
____애노테이션이 추가된 도메인 모델 클래스
____하이버네이트 세션
________Session 인터페이스 메소드
____영속성 계층 - DAO 구현
________EmployeeDao 인터페이스
________EmployeeDaoImpl 클래스
____서비스 계층 - 서비스 구현
________EmployeeService 인터페이스
________EmployeeServiceImpl 클래스
____애플리케이션의 디렉토리 구조
____애플리케이션 실행
________DBUtils 클래스
________SpringHibernateMain 클래스
________콘솔 출력
________직원 정보 테이블에 삽입된 데이터
__하이버네이트 질의 언어
____질의 인터페이스
____HQL을 이용한 데이터베이스 연산
________FROM 절
________AS 절
________SELECT 절
________WHERE 절
________ORDER BY 절
________GROUP BY 절
________명명된 매개변수 사용
________UPDATE 절
________DELETE 절
________질의를 이용한 페이지화
__하이버네이트 기준 질의 언어
____기준 인터페이스
________기준을 이용한 제약
__연습문제
__요약
5장. 스프링 웹 MVC 프레임워크
__MVC 아키텍처와 관심사의 분리
__프론트 컨트롤러 디자인 패턴
__스프링 MVC에 대한 이해
____스프링 MVC 프레임워크의 특징
____스프링 MVC의 요청 처리 흐름
__간단한 스프링 MVC 애플리케이션 개발
____새로운 메이븐 프로젝트 생성
____pom.xml에 스프링 MVC 의존관계 추가
____애플리케이션 설정
________/WEB-INF/web.xml 파일
________/WEB-INF/SpringDispatcher-servlet.xml 파일
____컨트롤러 생성 - EmployeeController
____뷰 생성 - hello.jsp
____애플리케이션 실행
__스프링 MVC의 DispatcherServlet
____배포 서술자 web.xml에서의 DispatcherServlet
____스프링 MVC 설정 파일 위치 등록
__스프링 설정 - SpringDispatcher-servlet.xml
__스프링 MVC 컨트롤러
____컨트롤러 정의를 위한 @Controller
____요청 매핑을 위한 @RequestMapping 애노테이션
________클래스 레벨의 매핑 요청
________메소드 레벨의 매핑 요청
________@RequestMapping의 속성 정보
________@RequestMapping의 메소드 매개변수
________@RequestMapping 애노테이션 메소드의 값 반환
__스프링 MVC의 ViewResolver
____뷰 기술 JSP를 위한 ViewResolver 구성
__스프링 MVC의 모델
__스프링 MVC와 하이버네이트 통합
____애플리케이션 구조
____샘플 코드와 샘플 데이터 모델
____프로젝트 구조
____pom.xml 파일
________hibernate.properties 파일
____SpringDispatcher-servlet.xml 파일
____하이버네이트 모델 클래스 - 엔티티 클래스
____DAO 계층
________EmployeeDao 인터페이스
________EmployeeDao 구현
____서비스 계층
________EmployeeService 인터페이스
________EmployeeService 구현
____스프링 MVC 컨트롤러 클래스
____뷰 페이지
________hello.jsp 페이지
________employee.jsp 페이지
________index.jsp 페이지
____애플리케이션 실행
__@ControllerAdvice 예외 처리
____GenericException 클래스
____SpringException 클래스
____EmployeeController 클래스
____hello.jsp 페이지
____exception.jsp 페이지
____애플리케이션 실행
__Spring MVC 국제화(i18n)
____프로퍼티 파일
____Spring 설정
________ReloadableResourceBundleMessageSource
________LocaleChangeInterceptor
________SessionLocaleResolver
____hello.jsp 페이지
____애플리케이션 실행
__컨트롤러를 통한 폼 핸들링
____스프링 MVC의 ModelAndView
____스프링 MVC 컨트롤러 클래스
________컨트롤러 클래스의 @ModelAttribute
________컨트롤러 클래스의 ModelMap
____뷰 페이지
____스프링 MVC 폼
____애플리케이션 실행
__연습문제
__요약
6장. 스프링 시큐리티를 이용한 보안
__스프링 시큐리티의 의미
____주요 연산
__서블릿 필터 다시보기
__보****유스케이스
__스프링 시큐리티 설정
____스프링 시큐리티 구성
________클래스패스에 JAR 추가
________스프링 시큐리티 의존성 - pom.xml
____네임스페이스 설정
__웹 애플리케이션의 URL 접근 보호
____첫 번째 단계 - web.xml
____보****설정 분리
__웹 애플리케이션에 로그인
____HTTP 기본 인증
____폼 기반 로그인 서비스
____로그아웃 서비스
____익명 로그인
____로그인 정보 기억
__사용자 인증
____메모리상의 정의를 이용한 사용자 인증
____데이터베이스를 이용한 사용자 인증
____패스워드 암호화
__메소드 레벨 보****
__본격적인 작업 시작
____프로젝트 구조
____web.xml에 필터 추가
____뷰 결정
____맞춤형 로그인 추가
____로그인 요청 매핑
____직원 목록 조회
____계정정보 입력
____로그아웃
____애플리케이션 실행
__연습문제
__요약
7장. 스프링을 이용한 테스트
__JUnit 4를 이용한 테스트
____JUnit 4 애노테이션
____어서트 메소드
____JUnit 4 예제
__TestNG를 이용한 테스트
____TestNG 애노테이션
____TestNG 예제
__애자일 소프트웨어 테스트
____단위 테스트
________고립 클래스의 단위 테스트
________모의 객체를 이용한 의존 클래스의 단위 테스트
________Mockito 프레임워크
____통합 테스트
__스프링 MVC 컨트롤러의 단위 테스트 생성
__스프링 MVC 테스트 프레임워크
____필요한 의존성
____스프링 테스트의 애노테이션
________@ContextConfiguration 애노테이션
________@WebAppConfiguration 애노테이션
____MockMvc
________어서션
____@RunWith(SpringJUnit4ClassRunner.class)
__연습문제
__요약
8장. JavaMail과 JMS의 스프링 연동
__스프링의 이메일 지원
____JavaMail API 소개
____JavaMail API 사용
____JavaMail을 위한 스프링 API
____스프링 메일 애플리케이션 개발
________설정 파일 - Spring.xml
________스프링의 이메일 발신 클래스
________MailerTest 클래스
__스프링 자바 메시징 서비스
____메시지와 메시징의 의미
____JMS의 의미
____JMS 애플리케이션
________JMS 구성요소
____MOM 서비스 제공자
________ActiveMQ 설정 - 메시지 큐
____스프링 빈 설정(Spring.xml)
____MessageSender.java - 스프링 JMS 템플릿
____App.java
____ActiveMQ 시작
____출력
____중계자 모니터링
____App.java 실행 시 예외
__연습문제
__요약
9장. 애노테이션을 이용한 스프링 제어역전
__애노테이션을 이용한 컨테이너 설정
____XML 대 애노테이션
____빈 관리
________스테레오 타입 애노테이션
________@Component
________@Repository
________@Service
________@Controller
________감지된 구성요소의 명명 규칙
________구성요소 이름 직접 지정
________클래스 자동 감지와 빈 정의 등록
________필터를 이용한 검색 방식 조정
________스코프 정의 - @Scope
____@Required 애노테이션을 이용한 의존관계 검사
____애노테이션 기반 의존관계 주입
____@Autowired
________프로퍼티에 @Autowired 적용
________@Qualifier
________@Resource
____생명 주기 애노테이션
__스프링의 자바 기반 설정
____@Configuration 애노테이션
____@Bean 애노테이션
________빈 선언
________빈 이름 지정
________의존관계 주입
____@Import 애노테이션
________생명주기 콜백
____@Scope 애노테이션
__스프링의 이벤트 처리
____스프링의 표준 이벤트
____스프링의 표준 이벤트 리스닝
________리스너 생성
____스프링의 이벤트 발생
________사용자정의 이벤트 생성
________이벤트 발생
________사용자정의 이벤트 처리
____스프링 이벤트의 이점
__스프링 표현 언어
____SpEL을 이용한 빈 참조
________XML 기반 설정
________애노테이션 기반 설정
____SpEL을 이용한 메소드 호출
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 연산자
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 컬렉션
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 정규표현식
________XML 기반 설정
________애노테이션 기반 설정
__텍스트 메시지와 국제화
____스프링에서의 국제화(i18n)
__연습문제
__요약
10장. 스프링의 관점지향 프로그래밍
__애플리케이션 개발에서 OOP의 문제점
__AOP 소개
__AOP 용어
____조인포인트
____어드바이스
____포인트컷
____애스펙트
____소개
____타깃
____프록시
____위빙
____위버
__AOP 구현
__스프링의 AOP 지원
__AspectJ 애노테이션 스타일
____스프링에서의 AspectJ 애노테이션 설정
____애스펙트 선언 - @AspectJ
____포인트컷 선언
____어드바이스 선언
________어드바이스 이전
________어드바이스 이후
________어드바이스 반환 후
________어드바이스 던진 후
________어드바이스 주변
____프록시
__@AspectJ 애노테이션을 사용해 스프링 애플리케이션 개발
____애플리케이션의 디렉토리 구조
____자바 파일 생성
________Employee.java
________EmployeeService.java
________LoggingAspect.java
________PayrollsSystem.java
____스프링 설정 파일 생성
____애플리케이션 실행
__XML 스키마 기반 설정
____애스펙트 선언
____포인트컷 선언
____어드바이스 선언
________어드바이스 이전
________어드바이스 이후
________어드바이스 반환 후
________어드바이스 던진 후
________어드바이스 주변
__XML 스키마 기반 설정을 이용한 스프링 애플리케이션 개발
____자바 파일 생성
________Employee.java
________EmployeeService.java
________LoggingAspect.java
________PayrollsSystem.java
____스프링 설정 파일 생성
____애플리케이션 실행
__연습문제
__요약
부록 A. 연습문제 해답
부록 B. 아파치 더비를 이용한 애플리케이션 데이터베이스 구성
부록 C. 스프링 폼 태그 라이브러리