달력

9

« 2020/9 »

  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  

 


 

MyBatis3 주요 컴포넌트 호출 도식도

보라색은 개발자가 구현해야 하는 부분이고 녹색은 Mybatis 제공하는 클래스나 설정파일들입니다.


 




 



1

어플리케이션에서 먼저 SqlSessionFactoryBuilder 인터페이스를 호출합니다.

2

설정파일의 정보를 읽어와서

3

SqlSessionFactoryBuilder SqlSessionFactory 생성합니다.

4

Application에서 DB CRUD메소드를 호출하면 Application상에서 SqlSessionFactory 호출합니다.

5

SqlSessionFactory SqlSession컴포넌트를 생성합니다.

6

Application 생성된 SqlSession 리턴하면

7

Application SqlSession 메소드를 호출하게 됩니다.

8

SqlSession 핵심기능을 하는 클래스로 SqlSession 개발자가 작성한 SQL문을 호출해 주게 됩니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요

 

Spring JDBC 라이브러리 설치

 

http://mvnrepository.com/

 

"oracle ojdbc6"으로 검색

oracle ojdbc6


 

첫번째 항목 선택


 

버전번호 클릭


 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.springframework/spring-jdbc/4.3.6.RELEASE


 



 

 

Posted by codedragon codedragon

댓글을 달아 주세요

2017. 5. 2. 05:42

Spring JDBC Development/Spring

 

 

Spring JDBC

·         엔티티 클래스와 애노테이션을 이용하는 최신 ORM 기술도 내부적으로는 DB와의 연동을 위해 JDBC를 이용합니다.

·         JDBC의 장점과 단순성을 그대로 유지하면서도 기존 JDBC의 단점을 극복할 수 있게 해주고, 간결한 형태의 API 사용법을 제공하며, JDBC API에서 지원되지 않는 편리한 기능을 제공합니다.

·         Spring JDBC는 반복적으로 해야 하는 많은 작업들을 대신 해줍니다.

·         Spring JDBC를 사용할 때는 실행할 SQL과 바인딩 할 파라미터를 넘겨 주거나, 쿼리의 실행 결과를 어떤 객체에 넘겨 받을지를 지정하는 것만 하면 됩니다.

·         Spring JDBC를 사용하려면 먼저, DB 컨넥션을 가져오는 DataSource Bean으로 등록해야 합니다.

 

'Development > Spring' 카테고리의 다른 글

MyBatis3의 주요 컴포넌트 호출 도식도  (0) 2017.05.28
Spring JDBC 라이브러리 설치  (0) 2017.05.11
Spring JDBC  (0) 2017.05.02
사용자 관리 아키텍쳐(Architecture)  (0) 2017.04.15
SpringFramework API 문서  (0) 2017.04.09
Maven - 라이브러리 관리 + 빌드 도구  (0) 2017.04.04
Posted by codedragon codedragon

댓글을 달아 주세요

 

사용자 관리 아키텍쳐(Architecture)

·         대부분의 중·대규모 웹 애플리케이션은 효율적인 개발 및 유지보수를 위하여 계층화(Layering)하여 개발하는 것이 일반적이다. (역할별로 나누어서 관리)

·         사용자관리 프로젝트 아키텍쳐에서 기본적으로 가지는 계층은 프리젠테이션 계층(Presentation Layer), 서비스 계층(Service Layer), 데이터액세스 계층(Data Access Layer) 3계층과 모든 계층에서 사용되는 도메인 모델 클래스로 구성되어 있습니다.

·         각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 고유한 기능들이 있습니다.

 

 

 

사용자 관리 프로젝트 아키텍처 도식도

세 가지 계층은 독립적으로 분리할 수 있도록 구현해야 하며, 일반적으로 각 계층 사이에서는 인터페이스(Interface)를 이용하여 통신하는 것이 일반적입니다

 


 

계층

설명

프리젠테이션 계층

·         브라우저상의 웹클라이언트의 요청 및 응답을 처리

·         상위계층(서비스계층, 데이터 액세스계층)에서 발생하는 Exception에 대한 처리

·         최종 UI에서 표현해야 할 도메인 모델 클래스을 사용

·         최종 UI에서 입력한 데이터에 대한 유효성 검증(Validation) 기능을 제공

·         비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공

·         @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속합니다.

서비스 계층

·         애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증

·         트랜잭션(Transaction) 처리

·         프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할을 함으로써 두 계층이 직접적으로 통신하지 않게 하여 애플리케이션의 유연성을 증가시켜줍니다.

·         다른 계층들과 통신하기 위한 인터페이스를 제공

·         Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스가 이 계층에 속합니다.

데이터 액세스 계층

·         영구 저장소(관계형 데이터베이스)의 데이터를 조작하는 데이터 액세스 로직을 객체화

·         영구 저장소의 데이터를 조회, 등록, 수정, 삭제에 대한 CRUD작업 수행

·         ORM(Object Relational Mapping) 프레임워크(MyBatis, Hibernate)를 주로 사용하는 계층

·         DAO 인터페이스와 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이 계층에 속합니다.

·         데이터 액세스 계층은 DAO 패턴을 적용하여 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙입니다.

·         비즈니스 로직이 없거나 단순하면 DAO와 서비스 계층을 통합 할 수도 있지만 의미 있는 비즈니스 로직을 가진 엔터프라이즈 애플리케이션이라면 데이터 액세스 계층을 DAO 패턴으로 분리해야 한다.

·         DAO패턴은 서비스계층에 영향을 주지 않고 데이터 액세스 기술을 변경할 수 있는 장점을 가지고 있다.

도메인모델클래스

·         프리젠테이션 계층(Presentation Layer), 서비스 계층(Service Layer), 데이터액세스 계층(Data Access Layer) 모든 계층에서 공통으로 사용되는 클래스입니다.

·         관계형 데이터 베이스의 엔티티와 비슷한 개념을 가지는 것으로 실제 VO(Value Object) 혹은 DTO(Data Transfer Object) 객체에 해당 도메인 모델 클래스는 3개의 계층 전체에 걸쳐 사용

·         private으로 선언된 멤버변수가 있고, 그 변수에 대한 getter setter 메서드를 가진 클래스를 말합니다.

 

 

'Development > Spring' 카테고리의 다른 글

Spring JDBC 라이브러리 설치  (0) 2017.05.11
Spring JDBC  (0) 2017.05.02
사용자 관리 아키텍쳐(Architecture)  (0) 2017.04.15
SpringFramework API 문서  (0) 2017.04.09
Maven - 라이브러리 관리 + 빌드 도구  (0) 2017.04.04
Servers 창 오픈하기 - STS, eclipse  (0) 2017.03.30
Posted by codedragon codedragon

댓글을 달아 주세요


 

SpringFramework API 문서

 

http://spring.io/

 

상단의 메뉴 중 [PROJECTS] 클릭


 

[SPRING FRAMEWORK]


 

해당 버전의 [API] 링크를 클릭합니다.

http://projects.spring.io/spring-framework/


 

http://docs.spring.io/spring/docs/current/javadoc-api/


 

'Development > Spring' 카테고리의 다른 글

Spring JDBC  (0) 2017.05.02
사용자 관리 아키텍쳐(Architecture)  (0) 2017.04.15
SpringFramework API 문서  (0) 2017.04.09
Maven - 라이브러리 관리 + 빌드 도구  (0) 2017.04.04
Servers 창 오픈하기 - STS, eclipse  (0) 2017.03.30
AspectJ Runtime API 문서  (0) 2017.03.24
Posted by codedragon codedragon

댓글을 달아 주세요

 

 

Maven

라이브러리 관리 + 빌드 툴

 

http://maven.apache.org/


 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

Servers 창 오픈하기 - STS, eclipse

 

메뉴: [Window] >> [Show View] >> [Servers]


 

or

"Show View" 항목에 "Servers"항목이 보이지 않으면

메뉴: [Window] >> [Show View] >> [Servers] >> [Other] >>

[Server] >> [Servers]

 


 

 

설정 전



 

 

설정 후


 

'Development > Spring' 카테고리의 다른 글

SpringFramework API 문서  (0) 2017.04.09
Maven - 라이브러리 관리 + 빌드 도구  (0) 2017.04.04
Servers 창 오픈하기 - STS, eclipse  (0) 2017.03.30
AspectJ Runtime API 문서  (0) 2017.03.24
"context" Namespace추가하기  (0) 2017.03.19
STS 인코딩 설정하기  (0) 2017.03.14
Posted by codedragon codedragon

댓글을 달아 주세요

 

AspectJ Runtime API 문서

 

http://www.eclipse.org/aspectj//doc/next/runtime-api/index.html


 

Posted by codedragon codedragon

댓글을 달아 주세요

 

"context" Namespace추가하기

beans.xml 파일(설정파일) 하단의 [Namespaces]탭 클릭 >>

"context" 항목 체크


 

[OK]


 

다시 [Source]탭을 클릭해서 보면 context 네임스페이스가 추가된 것을 확인할 수 있습니다.


 

Posted by codedragon codedragon

댓글을 달아 주세요

 

 

STS 인코딩 설정하기

 

 

메뉴: [Windows] >> [Preferences]


 

[General] >> [Workspace] >>

오른쪽 창 하단에서 "Text file encoding" 영역에서 [Other] 선택 >> [UTF-8] 선택 >>

[Apply] >> [OK]


 

Posted by codedragon codedragon

댓글을 달아 주세요