1 / 21

고급자바프로그래밍 (Advanced Java Programming)

고급자바프로그래밍 (Advanced Java Programming). 강원대학교 컴퓨터학부 2012 년 가을학기 담당교수 정충교. 7 장 스프링 핵심 기술의 응용. 3 대 핵심 기술. IoC /DI 서비스 추상화 AOP. 7.1 SQL 과 DAO 의 분리. SQL 을 설정 파일에서 빈의 프로퍼티로 주입 SQL 문장마다 각각 프로퍼티를 설정 SQL 전체를 맵으로 묶어 하나의 프로퍼티로 설정 SQL 서비스 public interface SqlService {

kieu
Download Presentation

고급자바프로그래밍 (Advanced Java Programming)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 고급자바프로그래밍(Advanced Java Programming) 강원대학교컴퓨터학부 2012년 가을학기 담당교수정충교

  2. 7장 스프링 핵심 기술의 응용

  3. 3대 핵심 기술 • IoC/DI • 서비스 추상화 • AOP

  4. 7.1 SQL과 DAO의 분리 • SQL을 설정 파일에서 빈의 프로퍼티로 주입 • SQL 문장마다 각각 프로퍼티를 설정 • SQL 전체를 맵으로 묶어 하나의 프로퍼티로 설정 • SQL 서비스 public interface SqlService { String getSql(String key) throws SqlRetrievalFailureException; }

  5. 7.2 설정파일로부터 SQL 분리 (인터페이스의 분리와 자기참조 빈)

  6. 7.2.1 Object XML Mapping • JAXB (Java Architecture for XML Binding) javax.xml.bind.Unmarshaller

  7. 7.2.2 XML 파일을 이용하는 SQL 서비스 • XmlSqlService • 생성자에서XML 파일을 읽어 객체를 만들고 이로부터 정보를 추출하여 Map 에 저장해 놓음

  8. 7.2.3 빈의 초기화 작업 • XmlSqlService • XML 파일을 읽어 객체를 만들고 이로부터 정보를 추출하여 Map 에 저장해 놓는 작업을 하나의 메소드로 선언 – loadSql() • @postConstruct애노테이션을 이용하여빈이 생성된 후 loadSql이 실행되도록 함

  9. 7.2.4 변화를 위한 준비: 인터페이스 분리

  10. public interface SqlReader { void read(SqlRegistrysqlRegistry); } public interface SqlRegistry { void registerSql(String key, String sql); String findSql(String key) throws SqlNotFoundException; }

  11. 자신을 참조하는 빈 형태

  12. 7.2.6 디폴트 의존 관계 • 확장 가능한 기반 클래스 – BaseSqlService BaseSqlService

  13. 7.3 서비스 추상화 적용 • 7.3.1 OXM 서비스 추상화 • JAXB • Castor XML • JiBX • XmlBeans • Xstream public interface org.springframework.oxm.Unmarshaller { boolean supports(Class<?> clazz) Objectunmarshal(Source source) throws IOException, XmlMappingException }

  14. 7.3.2 OXM 서비스 추상화 적용 • 스프링의 OXM언마샬러를사용하도록 고정 SqlReader를 SqlService클래스 안에 포함시켜 만든다. 한 개의 빈으로 등록할 수 있다.

  15. 위임을 이용한 BaseSqlService의 재사용 • 리스트 7-54

  16. 7.3.3 리소스 추상화 • 스프링 Resource • 파일을 InputStream으로 사용할 수 있게 해 줌 • 설정파일에서Resource 타입 빈 프로퍼티에 파일 이름을 넣어줌 • 리스트 7-57, 리스트 7-58

  17. 7.4 인터페이스 상속을 통한 안전한 기능 확장 • 인터페이스와 DI를 통한 유연한 확장 구조

  18. 인터페이스 상속을 이용한 확장구조

  19. 7.5 DI를 이용해 다양한 구현 방법 적용하기 • 7.5.1 ConcurrentHashMap을 이용한 수정 가능 SQL 레지스트리 • 7.5.2 내장형 데이터베이스를 이용한 SQL 레지스트리 • 7.5.3 트랜잭션 적용

More Related