1. Com.springsource.javax.activation : Spring java-mail
2. Com.springsource.javax.mail : Spring java-mail
3. Com.springsource.org.aopalliance : Spring ProxyFactoryBean
4. Com.springsource.org.aspectj.tools : AspectJExpressionPointcut 포인트컷 표현식 지원
5. Com.springsource.junit : junit
6. Commons-logging : Spring-context가 사용
7. Mail : java-mail
8. Mockito : 목 프레임워크 중 Mockito
9. Mysql-connector : Mysql JDBC
10. Org.springframework.context.support : Spring java-mail
11. Spring-aop : 스프링 기능 자체의 aop, Spring ProxyFactoryBean
12. Spring-bean : 스프링 빈을 활용하는 경우 필요. 스프링의 XML 설정파일과 자바 애노테이션을 파싱 하는데 필요한 클래스 포함
13. Spring-context : 스프링 코어를 확장한 많은 클래스가 들어 있는데 모든 클래스는 EJB, JNDI(Java Naming Directory Interface), JMX용 클래스와 연동하는데 applicationcontext기능을 사용해야 하며 스프링 리모팅 클래스, 동적 스크립팅 언어(제이루비, 그루비등)와 연동하는 클래스, 빈 유효성검증(JSR-303) API, 스케줄링을 하는 클래스도 포함되어 있다.
14. Spring-core : 모든 스프링 모듈에서 필요한 모듈. 다른 스프링 모듈에서 사용하는 공통 클래스가 포함됨.
15. Spring-expression : 스프링 표현언어(SpEL) 지원 클래스 포함.
16. Spring-jdbc : 스프링이 지원하는 jdbc.
17. Spring-test.jar
- @RunWith : Junit 프레임워크의 테스트 실행방법을 확장시 사용.
- SpringJUnit4ClassRunner : 어플리케이션컨텍스트를 만들고 관리하는 확장 클래스
- @ContextConfiguration(경로) : 자동으로 만들어줄 어플리케이션 컨텍스트 설정파일
18. Spring-tx : DuplicateKeyException.class 파일 존재 및 스프링 트랜잭션
* JAXB(Java Architecture for XML Binding)
> JDK1.6부터 지원. XML문서정보를 동일한 구조의 오브젝트로 직접 매핑해줌.
> 기존 DOM 방식은 리플렉션 API를 사용해 간접적으로 접근하는 불편한 방식.
> JAXB는 XML의 정보를 그대로 담고 있는 오브젝트 트리 구조로 만들어주기 때문에 XML 정보를 오브젝트처럼 다룰 수 있어 편리하다.
> JAXB는 XML문서의 구조를 정의한 스키마를 이용해서 매핑할 오브젝트의 클래스까지 자동으로 만들어주는 컴파일러도 제공해준다.
> 스키마 컴파일러를 통해 자동생성된 오브젝트에는 매핑정보가 애노테이션으로 담겨 있다. JAXB API는 애노테이션에 담긴 정보를 이용해서 XML과 매핑된 오브젝트 트리 사이의 자동변환 작업을 수행해준다.
위와 같이 XML을 생성해서 오브젝트로 매핑 작업을 할 것임.
2. xmlns : 네임스페이스 명시. 접두사가 없으므로 해당 엘리먼트와 하위 엘리먼트의 네임스페이스가 됨.
3. targetNamespace : 스키마를 재사용하기 위해 사용됨(XML에서 targetNamespace 호출 schemaLocation)
4. elementFormDefault(qualified) : 요소 또는 속성이 네임스페이스 URI와 결합.
7. complexType : 이 스키마를 참조하는 XML에서 자식 엘리먼트, 혹은 속성 및 sequence, choice, all 속성 사용시 사용해야함.
8. sequence : 하위 엘리먼트가 올 순서를 나열(하위 엘리먼트가 여러 개 일시 유용)
아래처럼 변환할 것이다.
9. maxOccurs : 엘리먼트의 숫자를 min/max 값을 지정할 수 있지만, unbounded 지정시 횟수 제한 없이 무제한 하위 엘리먼트가 생길 수 있음
16. simpleContent : 단순타입(Integer,String 등)을 변형시켜 복합 타입으로 변환하기 위해 사용.
18. extension : 타입을 상속하여 새로운 타입으로 정의
JAVA_HOME\bin\xjc -p spring.user.sqlservice.jaxb sqlmap.xsd -d src
C:\shin\project\tobi\jdk1.7.0_80_x64\bin\xjc -p spring.user.sqlservice.jaxb sqlmap.xsd -d src
1. SqlType.java, Sqlmap.java : <sqlmap>과 <sql>에 대한 바인딩 클래스
2. 위처럼 바인딩용 자바 클래스와 팩토리 클래스가 생성됨
컴파일러가 만들어준 XML 문서 바인딩용 클래스.
14. XmlAccessType.FIED : 필드를 XML로 추출
15. XmlType : namespace 지정가능, 출력순서 지정가능, name 속성에는 XML스키마를 통해 java파일을 생성한 경우 작성한 name값이 들어감
24. rootElement는 sqlmap
26. XmlElement 프로퍼티 대상 14번라인에서 필드를 추출하기로 했으므로 필드에 선언
26~27. <sql> 태그의 정보를 담은 Sqltype 오브젝트를 리스트로 가지고 있다.
28. 언마샬러를 통해 XML을 객체로 변환하여 받기위한 getter
@XmlAttribute : XML속성을 지정
* 언마샬링(unmarshalling) : XML문서를 읽어서 자바의 오브젝트로 변환하는 것
* 마샬링(marshalling) : 바인딩 오브젝트를 XML 문서로 변환하는 것
2. epril.com : Jaxb 컴파일러를 사용한여 만든 오브젝트를 사용하기 위한 네임스페이스
4. ../sqlmap.xsd : xsd 지정
Jaxb 컴파일러를 사용하지 않는다면 네임스페이스는 필요없다.
'스프링' 카테고리의 다른 글
[spring] xml_jaxb적용_빈후처리기_context네임스페이스_3 (0) | 2021.01.07 |
---|---|
[spring] xml_jaxb적용_생성자 단점_2 (0) | 2021.01.06 |
[spring] xml_DAO 분리_예외만들기 (0) | 2021.01.04 |
[spring] aop_트랜잭션_전파속성_동기화_11 (0) | 2021.01.03 |
[spring] aop_어노테이션 트랜잭션_클래스프록시_10 (0) | 2021.01.02 |