달력

9

« 2020/9 »

  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  

 

 

 

MyBatis

·         마이바티스

·         MyBatis 자바 오브젝트와 SQL문을 자동 Mapping 하는 기능을 지원하는 ORM 프레임워크입니다. (SQL Mapper)

·         SQL 별도의 파일(XML) 분리해서 관리하게 해주며 자바객체와 SQL 사이의 파라미터 Mapping 작업을 자동으로 해줍니다.

·         MyBatis Hibernate JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담없이, 개발자가 익숙한 SQL 그대로 이용하면서 JDBC 코드 작성의 불편함도 제거해주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능하다는 장점이 있습니다.

·         Scala MyBatis, .NET MyBitis, mybatis-spring 별도의 라이브러리로 존재합니다.

 

 

 

http://blog.mybatis.org/

http://www.mybatis.org/


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

RESTful Controller 어노테이션(Annotation)

·         Sprint MVC에서는 Client에서 전송한 XML이나 JSON 데이터를 Controller에서 Java Object 변환해서 받을 있는 기능(수신) 제공합니다.

·         Java  Object XML이나 JSON으로 변환해서 전송할 잇는 기능(송신) 제공하고 있습니다.

 

 

RESTful Controller 위한 핵심 어노테이션(Annotation)입니다.

Annotation

설명

@RequestBody

HTTP Request Body(요청 몸체) Java Object 전달 받을 있습니다.

 

https://codedragon.tistory.com/8929

@ResponseBody

Java Object HTTP Response Body(응답 몸체) 전송할 있습니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

uptodate

https://codedragon.tistory.com/8931

 

 

 

Jackson Library 검색 설치

 

http://mvnrepository.com/

 

"jackson mapper"으로 검색

jackson mapper


 

 

첫번째 항목 선택


 

 

버전번호 클릭


 

 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl/1.9.13


 

 

 

Project Explorer [Maven Dependencies]항목을 펼치면 JUnit라이브러리가 추가된 것을 확인할 있습니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

Spring MVC 특징

·         Spring 기반으로 하고 있기 때문에 Spring 제공하는 트랜잭션 처리나 DI AOP등의 기능을 손쉽게 사용할 있습니다.

·         서블릿 기반의 개발을 위한 MVC 프레임워크를 제공합니다.

·         Front Controller Pattern, Command Pattern, MVC Model2 프레임워크 차원에서 제공합니다.

·         Front Controller 역할을 하는 DispatcherServlet 클래스를 계층의 앞단에 놓고, 서버로 들어오는 모든 요청을 받아서 처리하도록 구성되어 있습니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

IoC 컨테이너(IoC Container)

·         스프링 프레임워크는 객체에 대한 생성 생명주기를 관리 있는 기능을 제공하고 있습니다.

·         , IoC 컨테이너 기능을 제공합니다. 그래서 IOC 컨테이너를 스프링 프레임워크, Spring Container라고 합니다.

·         관리되어지는 (Managed bean) 모여 있는 곳입니다.

·         Application Context 클래스로 구현됩니다.

 

 

 

 

 

IoC 컨테이너 기능

·         IoC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리합니다.

·         POJO 생성, 초기화, 서비스, 소멸에 대한 권한을 가집니다.

·         개발자들이 직접 POJO 생성할 있지만 컨테이너에게 역할을 맡깁니다.

 


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

IoC(Inversion of Control)

·         제어권의 역전

·         객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다.

·         Framework Container 제어권을 가지고 있습니다.

·         컴포넌트 의존관계 결정 (Component dependency resolution), 설정(Configuration) 생명주기(Lifecycle) 해결하기 위한 디자인 패턴(Design Pattern) 입니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

STS 설치파일 다운로드

 

STS Tools 페이지로 이동합니다.

https://spring.io/tools

 

or

페이지 하단 메뉴의 [TOOLS] 클릭


 

 

중간 정도에 "Spring Tools 4 for Eclipse" 영역에 있는 Windows 64-bit[DOWNLOAD STS4] 버튼을 클릭합니다.


 

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

TransactionTemplate

기본적으로 사용한 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용됩니다. 많이 사용된 다는 것은 기존의 방법보다 개발자의  노력과 시간을 덜어줍니다.

 

 

기존 코드

PlatformTransactionManager transactionManager;

 

public void setTransactionManager(PlatformTransactionManager transactionManager) {

this.transactionManager = transactionManager;

}

 

public void buyTicket(final TicketDto dto) {

// transactionManager 사용하기 위한 기본 설정

// 트랜잭션 처리를 위한 기본 객체 생성

TransactionDefinition definition = new DefaultTransactionDefinition();

// 트랜잭션 수행 객체을 얻어 status 저장

TransactionStatus status = transactionManager.getTransaction(definition);

 

// try ~catch구문으로 트랜잭션 처리

try { // 트랜잭션 처리 구문을 포함시킵니다.

// 카드 결제 작업 - card테이블 변경

template.update(new PreparedStatementCreator() {

@Override

public PreparedStatement createPreparedStatement(Connection con)

throws SQLException {

// SQL 쿼리 수행

return pstmt;

}

});

// 정상 수행시 커밋 수행

transactionManager.commit(status);

}catch(Exception e) { // 트랜잭션 실패시 처리 내용

e.printStackTrace();

// 에러 발생시 롤백 수행

transactionManager.rollback(status);

}

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

생명 주기(life cycle)

·         스프링 컨테이너 생명 주기

·         http://codedragon.tistory.com/6153

·         스프링 생명 주기

·         http://codedragon.tistory.com/6179

·         스프링 범위

·         http://codedragon.tistory.com/6038

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

전체적인 컴포넌트 설계 도식도 (게시판)

클라이언트의 요청에 대해서 Dispatcher 요청을 받아서 해당 Controller 전달합니다.

Controller에서 작업을 분기하고, 해당 Command클래스가 작동하여 DAO 이용한 데이터 베이스 작업을 합니다.

DAO클래스의 결과물인 DTO객체가 View(.jsp페이지) 전달되며, View에서는 클라이언트의 요청에 대한 응답으로 화면(UI) 구성하여 출력 합니다.

 


 

 


Posted by codedragon codedragon

댓글을 달아 주세요