plming/Java - Spring(35)
-
Spring MVC - MultiActionController를 이용하여 다수의 요청 처리하기
비즈니스 계층과의 통신이 없는 정적인 페이지에 접근해야 되는 경우가 종종 발생한다. 정적인 페이지에 직접 접근할 수도 있겠지만 웹 애플리케이션의 모든 URL에 대하여 공통적인 작업을 처리할 필요가 있을 경우에는 정적인 페이지 또한 DispatcherServlet을 통하여 접근하도록 개발할 경우 쉽게 해결할 수 있다. 모델 2 개발 방식으로 애플리케이션을 개발할 때 항상 논란의 여지가 되는 부분이 정적인 페이지, 입력화면에 직접 접근하는 것을 허용할지에 대한 여부이다. 물론 이 같은 페이지에 DispatcherServlet을 거치지 않고 직접 접근하는 것도 좋은 방법이다. 하지만 이와 같이 개발할 경우 애플리케이션 전체에 걸쳐서 영향을 미치게 될 인증이나 공통적인 기능을 구현할 경우 문제가 발생할 수 있다..
2010.08.27 -
Spring MVC 기본
1. 클라이언트의 요청(request)을 처리하는 과정 Spring MVC가 하나의 요청(Request)에 대한 처리를 완료한 다음 응답(Response)을 완료할 때까지의 생명주기를 살펴보면 다음 그림과 같다. 모델 2 개발 방식의 최초 진입지점은 컨트롤러를 담당하고 있는 서블릿이였다. ① Spring MVC 또한 클라이언트의 요청이 처음으로 진입되는 지점은 DispatcherServlet이다. DispatcherServlet은 Spring MVC에서 가장 핵심적인 기능을 구현하고 있는 클래스로서 하나의 요청을 처리하기 위하여 필요한 클래스들의 중계를 담당하는 역할을 한다. ② 클라이언트로부터 요청이 들어오면 DispatcherServlet은 빈 설정파일에 정의되어 있는 HandlerMapping을 이..
2010.08.27 -
모델 1 개발 vs 모델 2 개발
모델은 웹 애플리케이션이 동작하기 위한 구조라고 할 수 있다. 동작시키기 위해 애플리케이션을 개발하는 개발자가 구현하는 구조와도 같은 의미이다. 어떤 단계와 어떤 구조들을 가지는가에 따라 모델을 1과 2로 구분할 수 있다. 1. 모델 1 개발 방식 웹 애플리케이션 등장 초기부터 가장 일반적으로 사용해온 개발 방식이다. 모든 Request의 최초 진입 지점은 JSP로부터 시작된다. 사용자들이 전달한 입력 값에 대한 유효성 체크, 비즈니스 계층과의 통신, 화면 구성을 위한 프리젠테이션 로직 구현 등의 모든 작업을 JSP에서 전담한다. - 장점 > 초기 개발 속도가 빠르다. > 웹 애플리케이션 개발을 처음 시작하는 개발자들도 쉽게 접근할 수 있다. -단점 > 초기 개발 속도가 빠른 반면 프로젝트 중,후반부로 ..
2010.08.26 -
Spring Transaction - 선언적으로 처리
- 선언적으로 트랜잭션 처리 빈 설정 파일에서 선언적으로 트랜잭션을 처리. 비즈니스 계층의 소스 코드를 변경하지 않고, 설정 파일의 변경만으로 트랜잭션 기능을 추가, 변경하는 것이 가능하다. 다양한 리소스의 트랜잭션을 처리할 필요가 있거나, 처리해야 할 트랜잭션이 많은 경우와 트랜잭션 정책이 바뀌거나 개발 중에 트랜잭션 속성을 변경할 필요가 있을 때 빈 설정 파일만 변경해서 사용할 수 있다. 이를 프로그램적으로 처리하기 위해서는 상당히 많은 시간이 필요하며, 소스 코드를 직접 수정해야 하는 단점들이 있다. - applicationContext-jdbc.xml PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRE..
2010.08.22 -
Spring Transaction - 프로그램에서 처리
- 프로그램에서 트랜잭션 처리 import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; public class PragrammaticBoardService implements BoardService { private PlatformTransactionManager transactionManager..
2010.08.22 -
Spring Transaction
Transaction은 ACID의 4가지 속성을 가진다. Atomicity (원자성) 트랜잭션 내에 있는 모든 작업이 완료되거나 모든 작업이 완료되지 않아야 한다. 즉, 트랜잭션 내의 작업 중 하나라도 에러가 발생하면 트랜잭션 내의 모든 작업이 Rollback되어야 한다. Consistency (일관성) 트랜잭션 중에 오류 없이 유효한 데이터만 데이터베이스에 저장되어야 한다. Isolation (격리성) 트랜잭션 중에 변경된 내용이 트랜잭션이 완료되기 전까지 다른 트랜잭션에 영향을 미쳐서는 안된다. Durability (지속성) 트랜잭션이 완료된 경우 시스템 고장이나 네트워크 에러 등으로 데이터가 유실되지 않고 정상적으로 기록되어야 한다. Spring 프레임워크는 PlatformTransactionMan..
2010.08.22