sitelink1  
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  
이전 글의 예제 코드는 DWR을 그대로 사용했을 뿐, Spring은 사용하지 않았습니다. 다시말하면, Spring Container로 부터 bean을 가져온 것이 아니라, new라는 생성기를 사용하여 자바스크립트를 생성했습니다.

스프링 컨테이너가 관리하는 bean으로 자바스크립트를 생성하는 방법은 두 가지가 있습니다.
1. spring 생성기 사용하기.
2. 스프링 설정 파일에서 dwr 네임스페이스 사용하기.(스프링 2.0 이상에서 사용가능)

1. spring 생성기 사용하기.

dwr.xml을 다음과 같이 수정합니다.
new 생성기 대신 spring 생성기 사용하도록 수정.
class 송성 대신 beanName이라는 속성에 bean의 이름을 설정합니다.

·미리보기 | 소스복사·
  1. <dwr>  
  2.     <allow>  
  3.         <convert converter="bean" match="whiteship.domain.Member" />  
  4.         <create creator="spring" javascript="MemberService">  
  5.             <param name="beanName" value="memberService" />  
  6.         </create>  
  7.     </allow>  
  8. </dwr>  

그리고 Spring 설정 파일에 memberService라는 bean을 등록해야겠죠. 이 전 예제에서는 등록하지 않았었습니다.

·미리보기 | 소스복사·
  1. <bean id="memberService" class="whiteship.service.MemberServiceImpl" />  

마 지막으로 DWR이 스프링의 설정 파일을 알 수 있도록 설정해야 하는데, 기본으로 ContextLoaderListener를 통해 읽어오려고 합니다. 따라서 web.xml에 다음과 같이 설정되어 있다면, dwr.xml에 별도로 설정해 주지 않아도 됩니다.

·미리보기 | 소스복사·
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>/WEB-INF/spring/**Context.xml</param-value>  
  4. </context-param>  
  5.   
  6. <listener>  
  7.     <listener-class>  
  8.         org.springframework.web.context.ContextLoaderListener   
  9.     </listener-class>  
  10. </listener>  



2. 스프링 설정 파일에서 dwr 네임스페이스 사용하기.

이번에는 dwr.xml 파일 처럼 별도의 DWR 파일을 사용하지 않고, 스프링 설정 파일로만, DWR로 사용할 bean을 지정해 주는 방벙입니다.

먼저, web.xml에서 등록했던 DwrServlet을 DwrSpringServlet으로 변경합니다.(이제 dwr.xml은 삭제해도 됩니다.)
그럼 다음, 스프링 설정 파일에 dwr 네임스페이스를 추가합니다.
마지막으로, 자바스크립트로 노출시킬 bean 내부에 엘리먼트를 사용하여 설정합니다. 그리고 기본 타입이 아닌 데이터를 변환하기 위해 사용했던 convertor를 등록합니다.

·미리보기 | 소스복사·
  1. <servlet>  
  2.     <servlet-name>dwr</servlet-name>  
  3.     <servlet-class>  
  4.         org.directwebremoting.spring.DwrSpringServlet   
  5.     </servlet-class>  
  6.     <init-param>  
  7.         <param-name>debug</param-name>  
  8.         <param-value>true</param-value>  
  9.     </init-param>  
  10. </servlet>  

·미리보기 | 소스복사·
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:util="http://www.springframework.org/schema/util"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xmlns:aop="http://www.springframework.org/schema/aop"  
  7.     xmlns:tx="http://www.springframework.org/schema/tx"  
  8.     xmlns:lang="http://www.springframework.org/schema/lang"  
  9.     xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"  
  10.     xsi:schemaLocation="   
  11. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
  12. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd   
  13. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd   
  14. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd   
  15. http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd   
  16. http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"   
  17.     default-autowire="byName">  
  18.   
  19.     <bean id="memberService" class="whiteship.service.MemberServiceImpl">  
  20.         <dwr:remote javascript="MemberService" />  
  21.     </bean>  
  22.   
  23.     <dwr:configuration>  
  24.         <dwr:convert type="bean" class="whiteship.domain.Member" />  
  25.     </dwr:configuration>  
  26.   
  27. </beans>  


클라이언트 코드는 수정할 것이 없습니다.

이렇게 하면, 스프링의 DI와 AOP를 적용한 자바 객체를 자바스크립트 형태로 변환해주고(DWR이), 이것을 클라이언트 자바스크립트에서 호출할 수 있게 됩니다.

번호 제목 글쓴이 날짜 조회 수
41 GWT-yui-ext Demo 황제낙엽 2009.03.12 24
40 YUI 응용프로그램 만들기 (Writing Your First YUI Application) 황제낙엽 2009.03.12 32
39 MethodChain이란? 황제낙엽 2009.03.12 33
38 DWR2.x 와 Spring2.x에서 설정 황제낙엽 2009.03.12 15
37 [guni] DWR 사용시 Session 값 얻기 황제낙엽 2009.03.12 18
36 [guni] Spring + DWR 을 이용한 Form Submission처리... 황제낙엽 2009.03.12 9
» [Whiteship's Note] Spring + Ajax with DWR (Revolution) file 황제낙엽 2009.03.12 68
34 [Whiteship's Note] Spring + Ajax with DWR (Coding) file 황제낙엽 2009.03.12 52
33 [Whiteship's Note] Spring + Ajax with DWR 황제낙엽 2009.03.12 24
32 [흰둥이와 백설이] DWR - Reverse Ajax part 2 : Configuring Reverse Ajax 황제낙엽 2009.03.12 39
31 [흰둥이와 백설이] DWR - Reverse Ajax part1 황제낙엽 2009.03.12 31
30 [흰둥이와 백설이] DWR 사용을 위한 web.xml 설정 방법 황제낙엽 2009.03.12 52
29 [흰둥이와 백설이] Overview Of DWR - DWR : JAVA를 위한 쉬운 AJAX 황제낙엽 2009.03.12 18
28 Direct Web Remoting 황제낙엽 2009.03.12 28
27 자바스크립트 압축 황제낙엽 2009.03.11 17
26 Ajaxim (웹 인스턴트 메신저), DatePicker (슬라이딩 데이트), Starbox (별점추천 UI 라이브러리), Tablekit (테이블을 데이터 그리드로) 황제낙엽 2009.03.11 78
25 Prototype, Script.aculo.us 스크랩 황제낙엽 2009.03.11 73
24 [펌] 1. Dojo toolkit Example 황제낙엽 2009.03.11 15
23 [펌] 2. Dojo Event Model 황제낙엽 2009.03.11 17
22 [펌] 3. DOJO Built-in Widgets (달력) 황제낙엽 2009.03.11 8