13. @AspectJ 어노테이션을 이용한
AOP지원
– @AspectJ는 Java 5 어노테이션을 사용한 일
반 Java 클래스로 관점(Aspect)를 정의하는 방
식이다. @AspectJ 방식은 AspectJ 5 버전에서
소개되었으며, Spring은 2.0 버전부터 AspectJ
5 어노테이션을 지원한다. Spring AOP 실행환
경은 AspectJ 컴파일러나 직조기(Weaver)에
대한 의존성이 없이 @AspectJ 어노테이션을
지원한다.
22. <mvc:annotation-driven/>의 의미
• Spring MVC의 기본 설정이 셋팅됨.
– 1. Spring 3의 Type Conversion 서비스
2. 숫자 필드에 대한 @NumberFormat 지원
3. Date, Calendar에 대한 @DateTimeFormat 지
원
4. @Controller 유효성 체크 @Valid 지원(클래스
패스에 JSR-303 연결되어 있을 경우)
5. XML 읽고 쓰기 지원 classpath JAXB 연결시
(Html Message를
@RequestBody/@ResponseBody로 연결지원)
6. JSON 읽고 쓰기 지원 Jackson (5번과 동일)
24. Ibatis 프레임워크의 특징
• 추상화된 접근방식
• 코드로부터 SQL분리
• 쿼리 실행의 입출력 객체 바인딩 지원
• Dynamic SQL 지원
• 다양한 DB처리 지원
25. 사전 준비
라이브러리 설 명 연관 라이브러리
ibatis-sqlmap-2.3.4.726.ja
r
iBATIS 라이브러리(필수)
commons-dbcp-1.2.2.jar
database connection poo
ling 지원 라이브러리(선택)
commons-logging-1.1.1.j
ar
commons 로깅(선택)
log4j-1.3alpha-8.jar log4j(선택)
oscache-2.4.jar
중앙집중 또는 분산 캐슁
지원(선택)
cglib-nodep-2.1_3.jar
Runtime Bytecode Enhan
cing 필요 시(선택)
Oracle, Mysql, SqlServer등의 JDBC 드라이버
31. typeAlias 위치 변경
• sqlMap쪽에서 사용하던 typeAlias가
sqlMap이 바뀐 mapper 에서 사용되지 않
고 Configration 파일에서 정의하도록 변
경되었다
32. Dynamic Statement 변화
• <isEqual> , <isNull> 등의 구문이 <if>로 통합되
었다.
• <if test=“userID != null”> 형태로 간단하게 사용
할 수 있다.
<dynamic> 형태로 해서 where 조건절이나 and ,
or 를 동적으로 만들던것이 <where>나 update에
서 사용할 수 있는 <set> 등으로 변경되었다.
• <select id="getUserList" resultType="User>
SELECT * FROM TR_USER <where> <if
test="isAdmin != null"> authLevel = '1' </if>
</where> </select>
33. 전자정부프레임워크 Tag Library
• <ui:pagination/>
이름 설명 필수여부
paginationInfo
페이징리스트를 만들기 위해 필요한 데
이터. 데이터 타입은
egovframework.rte.ptl.mvc.tags.ui.pagin
ation.PaginationInfo이다.
yes
type
페이징리스트 렌더링을 담당할 클래스
의 아이디. 이 아이디는 빈설정 파일에
선언된 프로퍼티 rendererType의 key값
이다.
yes
jsFunction
페이지 번호에 걸리게 될 자바스크립트
함수 이름. 페이지 번호가 기본적인
argument로 전달된다.
yes
37. Ajax 지원 서비스
• 일반적으로 Ajax 기능은 javascript 언어로
개발하나, server-side 구현에 익숙한 J2EE
개발자들에게는 쉽지 않은 작업이 될 수
있다.
• Ajax 지원 서비스에서는 Ajax를 이용해 자
주 사용되는 기능을 custom tag형태로 제
공한다.
• 기능은 오픈소스 라이브러리인 AjaxTags를
이용한다.
39. ajax:autocomplete
개요
파라미터 설명 필수여부
baseUrl
자동완성기능을 위한 결과 데이터를 보내주는
server-side 액션을 위한 URL.
yes
source
추천 검색어 리스트를 보여줄 텍스트 필드 이름. 입력
필드에 추천 검색리스트를 보여준다면 target과
source를 동일하게 입력한다.
yes
target 사용자가 입력하는 텍스트 필드 이름. yes
parameters
baseUrl에 추가할 파라미터들.여러개일 경우 comma
로 구별한다.
yes
className 추천 검색리스트에 적용할 CSS 클래스이름 yes
indicator Ajax 요청중일때 보여줄 표시. no
minimumCharact
ers
Ajax 요청을 위한 최소 입력값. no
preFunction Ajax 요청이 시작되기 전에 동작하는 function 이름. no
postFunction Ajax 요청이 완료된 후에 동작하는 function 이름. no
errorFunction Ajax 요청 error시에 동작하는 function 이름. no
40. ajax:select
개요
파라미터 설명 필수여부
baseUrl 자동완성기능을 위한 결과 데이터를 보내주는 server-side 액션을 위한 URL. yes
source
추천 검색어 리스트를 보여줄 텍스트 필드 이름. 입력 필드에 추천 검색리스트를 보여준다면
target과 source를 동일하게 입력한다.
yes
target 사용자가 입력하는 텍스트 필드 이름. yes
parameters baseUrl에 추가할 파라미터들.여러개일 경우 comma로 구별한다. no
eventType no
executeOnLoad 응답 데이터로 select box를 구성하는 중일때 구성중인지를 별도 표시를 할지 여부.[default=false] no
defaultOptions Ajax 응답값이 없을때 보여줄 기본 리스트. comma로 구별하여 작성한다. no
preFunction Ajax 요청이 시작되기 전에 동작하는 function 이름. no
postFunction Ajax 요청이 완료된 후에 동작하는 function 이름. no
errorFunction Ajax 요청 error시에 동작하는 function 이름. no
parser 응답 데이터에 대한 parser.[default=ResponseHtmlParser] no
41. ajax:tabPanel
개요
파라미터 설명 필수여부
id tabPanel의 ID yes
preFunction
Ajax 요청이 시작되기 전
에 동작하는 function 이
름.
no
postFunction
Ajax 요청이 완료된 후에
동작하는 function 이름.
no
errorFunction
Ajax 요청 error시에 동작
하는 function 이름.
no
parser
응답 데이터에 대한 parse
r.[default=ResponseHtmlP
arser]
no
46. UX 처리
• 오픈소스인 jQuery Mobile사용
• html5, CSS3, javascript를 제공
– HTML5: 모바일 웹 페이지 구성 시 사용 할
수 있는 마크업 언어로서 모바일 특화 태그 및
디바이스 API를 제공한다.
– CSS3: 모바일 기기 및 브라우저에 따라 적합
한 컴포넌트가 보여지는 기능을 제공한다
– JavaScript Module App Framework: UX/UI
controller component의 효율성을 보장하는
javascript 밑 Json 구조를 제공한다.