KoreanFoodie's Study

자바 Spring FrameWork #3 : 트랜잭션, JSP, Spring MVC 본문

Tutorials/Spring Framework

자바 Spring FrameWork #3 : 트랜잭션, JSP, Spring MVC

GoldGiver 2021. 11. 24. 22:53

Spring Framework 명강사이신 채규태님의 강좌를 듣고 핵심 용어들을 정리한 글입니다.


Transaction 관리

스프링과 비교되는 EJB는 모든 비즈니스 메소드에 대한 트랜잭션 관리를 EJB 컨테이너가 자동으로 처리해 준다. 스피링에서도 마찬가지의 기능이 가능하다. 

스프링의 트랜잭션 설정에서는 앞에서 학습한 AIO가 사용된다. 그런데 XML 기반의 AOP 설정만 사용할 수 있고, 어노테이션은 사용할 수 없다. 그리고 애스펙트를 설정하는 것도 <aop:aspect> 엘리먼트를 사용하지 못하고 <aop:advisor> 엘리먼트를 사용해야 한다.

 

1. 트랜젝션 네임스페이스 등록

 

2. 트렌잭션 관리자 등록

 

3. 트랜잭션 어드바이스 설정

<tx:method> 엘리먼트는 다음과 같은 속성을 가질 수 있다.

 

4. AOP 설정을 통한 트랜잭션 적용

 

위의 설정들을 통해 트랜잭션이 동작하는 것을 그림으로 표현하면 다음과 같다.

 

 

JSP

<% Java_Code %> : Scriptlet. 그냥 자바 코드

<%= Method_Call   %> : Expression. 해당 위치에 브라우저에 뭔가를 출력할 때 사용

 

 

MODEL 1 아키텍처

MODEL 1 아키텍처는 JSP와 JavaBeans만을 이용하여 웹을 개발하는 가장 단순한 구조다.

자바에서 Bean이라는 용어는 객체를 의미하며, JavaBeans는 데이터베이스 연동에 사용되는 자바 객체들을 의미한다.

따라서 MODEL 1의 구성 요소에서 Model 기능의 JavaBeans는 DAO와 VO 클래스를 의미한다. MODEL 1 아키텍처에서는 JSP가 가장 많은 기능을 처리하며, JSP에서 Controller와 View 기능을 모두 담당한다.

Controller는 JSP 파일에 작성된 자바 코드를 의미하는데, 일반적으로 사용자의 요청 처리와 관련된 자바 코드라고 생각하면 된다. 

화면 네비게이션 방식

 

 

MODEL 2 아키텍처 적용

MODEL 2 아키텍처에서 가장 중요한 특징은 Controller의 등장이며, 이 Controller는 서블릿 클래스로 구현한다. 

Controller의 유형은 딱 3가지, 사용자 입력 정보 추출, DB정보 업데이트, 리다이렉트 기능이다.

MODEL 2 아키텍처에서는 기존에 JSP에 포함되어있던 Controller 로직이 Controller 기능의 서블릿으로 이동한다.

 

 

스프링 MVC 적용

유지보수를 위해 기능을 나눈다. 즉, 복잡한 구조를 개선하기 위해 컨트롤러의 기능을 DispatcherServlet 하나로 처리하지 말고 여러 클래스로 분산시키는 것이다.

서블릿 컨테이너가 DispatcherServlet 객체를 생성하고 나면 재정의된 init 메소드가 자동으로 실행된다. init 메소드에서는 스프링 설정 파일(action-servlet.xml)을 로딩하여 XmlWebApplictionContext를 생성한다. 즉, 스프링 컨테이너가 구동되는 것이다. 
따라서 스프링 설정 파일(action-servlet.xml)에 DispatcherServlet이 사용할 HandlerMapping, Controller, ViewResolver 클래스를 <bean> 등록하면 스프링 컨테이너가 해당 객체들을 생성해주는 것이다. 

 

 
Comments