RadarURL

응용 프로그래밍
2014.05.09 17:43

Spring MVC

조회 수 1591 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

현재 Request URL 매핑, Context 제어 등을 담당하는 Controller 단은 Struts2를 DI 컨테이너, AOP를 위해서는 spring 을 사용하고 있습니다.


 

Spring에 Struts를 쓰는 이유는 Spring MVC에 비해 Action Mapping이 Spring MVC에 비해 간결하고

사용하기 쉽다고 생각했는데, spring3 기준으로 MVC를 구현해봤을 때 생각했던 것과는 달리 struts2에 비해 불편한 점은 없었습니다.



 

그 이유로는.


 

- spring mvc 만으로 struts2가 제공하는 request mapping, custromized inteceptor등을 구현할 뿐만 아니라 더욱 심플하고 강력한 validation을 제공합니다.


 

- struts2는 request URL마다 struts.xml에 등록해줘야 되는 번거러움이 있습니다. ( struts2에 와일드카드맵핑을 이용해 어느정도 해소는되었지만)


 

- spring2.5부터 xml 설정파일없이 annotation기반으로 controller가 구현이 가능하고 spring3 부터는 mvc namespace를 제공해서 더욱간편한 mvc 가 가능합니다.


 

* mvc namespace에 대한 한가지 예로 비지니스로직이 없는 단순 페이지를 위한 URL ( domain/event/thanks.jce ) 생성시 action class 생성 없이 <mvc:view-controller path="/event/thanks" view-name="/event/thanks"/> 만 추가해주면 해당 URL이 사용가능합니다.


이러한 내용을 정리해보고 직접 구현/테스트를 해본 후, 느낌은 굳이 spring에 struts2를 사용할 필요가 있을까 라는 생각까지 들었습니다. 실제 해외오픈소스커뮤니티, 국내개발관련 커뮤니티를 상주해본 결과 spring을 사용하면서 contoller단을 struts2로 구현하는 경우는 구버젼의 유지보수, spring으로 전환시 기존 시스템유지를 제외하고는 대부분 maven + spring 기반의 프로젝트가 대부분이라고 합니다.



01.jpg


Google trend 에서도 struts2에대한 관심은 점점 줄어드는 추세입니다.




 

SPRING MVC 구현



 

-DispatcherServlet


 

spring mvc는 http request response 같은 클라이언트와의 상호작용 뿐 아니라, controller, view 동작 제어 모두 DispatcherServlet이 맨앞에서 도맡아 처리하고 있습니다. 02.png

-DispatcherServlet등록을 위한 web.xml


03.jpg

spring MVC는 기존 struts, freemarker와 관련된 설정없이 해당 dispatcherServlet만 등록하면 MVC구현이 가능합니다.


 

* spring-servlet.xml은 스프링환경설정 변수가 포함됩니다.

- component scan package 지정

- viewResolver 등록 ( jsp / freemarker )

- aop

- 공통상수

- datasource

* aop. 공통상수, datasource는 기존방식 그대로 사용



 

- ViewResolver 지정



04.jpg


contoller의 처리결과를 생성할 view를 지정합니다. view단의 template로 freemarker를 사용하기 위해서 viewResolver를 등록합니다.


- Controller class 생성


05.jpg


 

- @requestMapping : request mapping 을 위한 annotation, 클래스에 지정하면 해당 클래스 메소드에 모두 적용

                              

메소드 지정시 클래스지정path / 메소드지정                             

* value : mapping URL                              

* method : httpRequest Method 지정                    


 

ex) http://domain/social/main 호출시 viewResolverPath인 /template/social/main.ftl 로 Mapping된다

- Model Object : view단에 전해지는 Object를 attribute로 가진다.

 

출처 : http://stunstun.tistory.com/26

TAG •
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 928102
41 응용 프로그래밍 WIndows Application의 실행 속도 측정 file JaeSoo 2023.09.06 3185
40 응용 프로그래밍 [Apple] 엔터프라이즈 계정신청 (Enterprise Program) file JaeSoo 2023.03.27 267
39 응용 프로그래밍 [MSA] MSA란 무엇인가? 개념 이해하기 file JaeSoo 2023.01.26 210
38 응용 프로그래밍 메모리 영역 (code, data, stack, heap) file JaeSoo 2016.03.23 747
37 응용 프로그래밍 [SVN] Subversion 명령들 file JaeSoo 2016.02.06 967
36 응용 프로그래밍 IBM JDK 1.6 에서 Spring 2.5.2를 사용할 때 GenericTypeResolver 에서 NullPointerException이 발생하는 문제 JaeSoo 2016.01.27 787
35 응용 프로그래밍 [전자정부 표준프레임워크] 톰캣(Tomcat) 설치하기 file JaeSoo 2016.01.02 535
34 응용 프로그래밍 프로그래밍 격언 JaeSoo 2015.03.04 398
33 응용 프로그래밍 새로운 것을 배워야 좋은 프로그래머인가요? JaeSoo 2015.02.13 319
32 응용 프로그래밍 개발자&웹퍼블리셔 운영서버 배포관리는 어떻게 하시고 계신가요? file JaeSoo 2014.05.15 1287
31 응용 프로그래밍 버전관리 - 형상관리, 소스세이프, CVS, Subversion(SVN), GIT, mercurial(hg), Perforce JaeSoo 2014.05.15 1755
30 응용 프로그래밍 빌드를 자동화하라 (Automate the Build) JaeSoo 2014.05.15 1129
29 응용 프로그래밍 단일화된 소스 저장소를 유지하라. (Maintain a Single Source Repository.) JaeSoo 2014.05.15 1417
28 응용 프로그래밍 지속적인 통합으로 피처요구사항 빌드하기 (Building a Feature with Continuous Integration) JaeSoo 2014.05.15 1310
27 응용 프로그래밍 지속적인 통합 (Continuous Integration) file JaeSoo 2014.05.15 1176
26 응용 프로그래밍 변경관리/형상관리/빌드배포 자동화 연동 시 주요 이슈 JaeSoo 2014.05.15 1220
25 응용 프로그래밍 형상관리의 기능 범주 file JaeSoo 2014.05.15 1314
24 응용 프로그래밍 Conversion Struts to Spring MVC JaeSoo 2014.05.09 1253
23 응용 프로그래밍 Spring 3.1 Overview JaeSoo 2014.05.09 1147
22 응용 프로그래밍 Spring MVC 에서 ContentNegotiatingViewResolver를 이용한 단일 RequestMapping 으로 Muilti-View 처리하기 file JaeSoo 2014.05.09 1687
Board Pagination Prev 1 2 3 Next
/ 3


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너