본문 바로가기

Spring

(12)
Mybatis Plugins Mybatis3에선 Spring AOP기능과 비슷한 동작을 제공하는 Plugins를 제공한다. Mybatis에서 제공하는 메서드를 호출을 하면 요청을 가로채어 특정 작업을 수행할 수 있다. AOP란? 관점 지향 프로그래밍의 약자로 주로 공통적인 부가기능을 비즈니스 로직과 분리하는 프로그래밍 기법 Mybatis에서 제공해주는 Plugins 클래스는 아래와 같다. Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler (getParameterObject, setParameters) ResultSetHandler (handleResultSets, handleOutputP..
Mybatis StatementHandler와 Batch타입 처리 관련 이슈 이전장(aridom.tistory.com/72)에서 Mybatis Plugins라는것을 알아봤다. 이번에는 Mybatis Plugins 중 하나인 StatementHandler를 이용하면서 발생된 이슈와 이놈이 무슨역할을 하는지 알아보도록 하자. StatementHandler Mybatis3에 구현된 StatementHandler 인터페이스는 아래와 같다. package org.apache.ibatis.executor.statement; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import org.apache.ibatis.cursor.Cursor; imp..
2. DI (Dependency Injection)의 개요 Spring의 핵심 중 한 개는 DI라고도 할 수 있다. 그렇다면 DI가 왜 필요한지, 그리고 어떻게 사용하는지에 대해서 간단하게 정리해보자. 주로 JavaEE 기반 Application을 개발할 때는 하나의 수행을 위해 여러개의 컴포넌트를 조합해서 구현한다. MVC 기반 방식에선 공통으로 사용되는 Component, 데이터베이스에 접근하기 위한 Repository, 외부 시스템이나 서비스에 접속하기 위한 Component에 접근하기 위해 조합하는 경우가 많다. 결합도가 강한 프로그램 서로 조합해서 기능을 사용하기 위해선 각각의 컴포넌트들의 객체생성은 피할 수 없다. 객체를 생성할수록 의존성이 강해지게되며 그 결과 결합도가 높아지게 된다. 결합도가 높을수록 아래와 같은 문제점이 발생된다. - 결합된 클래..
1. Spring의 개요 및 부속 프로젝트의 간단 개념정리 - 개요 Spring Framework는 J2EE(Java2 Platform, Enterprise Edition)를 이용하여 Application을 쉽게 개발할 수 있도록 도와주며, 성능문제 뿐만 아니라 이를 해결할 수 있는 방법에 대해 제공해주는 오픈소스 프로젝트다. 2004년에 1.0 버전부터 시작하여, 2006년에 2.0 버전, 2009년에 3.0 버전, 2013년에 버전 4.0이 발표되었다. # 버전별 새롭게 추가된 기능 V 1.x : IoC(Inversion of Control), AOP(Aspect Oriented Programming), XML 기반 Bean 정의, Transaction 관리, Data Access V 2.x : Spring Security, Spring Web Flow, A..
======== 해당 게시물 이후부턴 새롭게 공부하는 내용 ========
[Spring] Spring HTTP 기반 데이터 요청 (HttpServletRequest, @RequestParam, Command Object) [해당 포스트는 개인적으로 공부를 하고 차후에 참고용으로 하고자 작성한 것입니다. 따라서 잘못된 부분이나 부족한 부분이 있을 수 있기에 참고하시기 바랍니다.] 로그인이나 회원가입, 게시글 등록 등 View에서 사용자가 데이터를 입력하여 Server에 저장하고자 할 때 데이터를 추출할 수 있어야 한다. 이러한 처리를 위해 Spring에선 HTTP Servlet을 통해 HTTP 요청을 처리한다. Client가 HTTP 요청을 하면 Spring은 Servlet을 통해 HTTP 요청을 인식하여 Controller에게 작업을 할당시켜준다. Controller는 HTTP 요청 중 데이터 전송이 있으면 이를 받아와 Service에게 넘겨주어 DB와 통신을 하게 된다. 이후 DB 결과를 Model을 이용하여 View에..
[Spring] View에 데이터 전송 (Model / ModelAndView) [해당 포스트는 개인적으로 공부를 하고 차후에 참고용으로 하고자 작성한 것입니다. 따라서 잘못된 부분이나 부족한 부분이 있을 수 있기에 참고하시기 바랍니다.] Controller는 Business Logic의 결과를 사용자의 View에 전달하기 위해선 특정 저장공간에 담아서 전달해야 한다. 이번엔 Controller에서 View에게 전달하는 방법 2가지에 대해 정리한다. Model Model은 model attributes를 저장하는 Interface이다. Model에 Attributes를 추가하기 위해 고안되었으며, Java.util.Map으로 모든 Model에 접근을 허용한다. 주로 addAttribute Method를 통해 데이터를 Model에 저장한다. 일반적인 사용법은 아래의 예제를 통해 확인하..
[Spring] MVC 패턴 & Spring Framework MVC [해당 포스트는 개인적으로 공부를 하고 차후에 참고용으로 하고자 작성한 것입니다. 따라서 잘못된 부분이나 부족한 부분이 있을 수 있기에 참고하시기 바랍니다.] Spring Framework로 웹 개발을 할 땐 기본적으로 MVC 패턴을 따른다. MVC 패턴은 Model, View, Controller 이 3가지로 나뉘어 역할을 분할하여 처리한다. 역할을 나누어 처리하기 때문에 서로의 결합도가 낮아져서 좋은 코드가 되며 유지보수도 하기 편해진다. Spring MVC Framework 구조를 공부하기 앞서 MVC 패턴의 방식과 개념에 대해 간략히 알아보도록 하자. MVC 패턴 MVC 패턴은 Model, View, Controller 개념이 합쳐지면서 생긴 방식으로 소프트웨어 공학에서 사용되는 디자인 패턴이다...