JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » AJAX討論區 » GWT  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 GWT+Spring+Spring Security+Hibernate範例
kentyeh





發文: 647
積分: 6
於 2009-02-24 23:13 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
網路上想找個完整的GWT+Spring+Spring Security+Hibernate範例,卻怎麼也找不到,所以自行寫了個可以運作的範例,
首先要執行這個範例您必須要有Ant Build的環境,其次您也要下載GWT
您的環境變數須有 JAVA_HOME 指到 JDK 目錄,執行路徑也要包含 \bin\java.exe,另外也要有 GWT_HOME 指到 GWT 安裝目錄,
再來下載範例解開後,把所須的Jar檔,放到 /GwtWeb/WebRoot/WEB-INF/lib 目錄下(看一下這個目錄下的RequiredJar.txt說明),
修改一下applicationContext.xml的資料庫設定
執行Ant Build 建立 MyGwtSpringIntegration.war 就可以試試了,username/password 參考applicationContext-security.xml,
程式重點說明如下:
1.applicationContext.xml這裡我要打算放資料庫物件相關的設定,
applicationContext-security.xml是Spring Security相關的設定,
applicationContext-service.xml 放的是 GWT RPC 服務的設定,
service-servlet.xml是Spring WEB url mapping 供 GWT RPC叫用的對應網址

2.這個範例我有連到資料庫,但並未真正使用到資料庫,資料庫格式看這裡
若要用資料庫放用戶資料與角色,要修改applicationContext-security.xml的<authentication-provider>部分,參考一下UserGuide,
這裡找到一個簡體中文檔,可以對照一下
可用的USER/PASSWORD 也寫在這個檔案內,可試一下不同角色的User,其中有一個Method限制角色呼叫。
3.就算您不用GWT,org.springframework.orm.hibernate3.extended內的三個檔,我覺得也有一定的價值,大致說明如下
假設 User 代表單純的 Pojo,宣告 User的DAO物件只要這樣
1
2
3
4
5
6
public class UserDao<E> extends AbstractSpringHibernateDao<E> {
    @Override
    protected Class getClazz() {
      return User.class;
    }
  }

再來是UserManager,
1
2
3
4
5
public class UserManager extends BaseManager<User>{
    public 宣告商業方法(方法開頭為 save,update,remove,busi者,保護在一個Transaction下){
      getDao().進行資料操作…
    }
  }

將以下加到applicationContext.xml內
1
2
3
4
5
6
7
8
  <bean id="userDao" class="your.package.UserDao" parent="abstractSpringHibernateDao"/>
  <bean id="userManager" parent="txProxyTemplate" lazy-init="true">
    <property name="target">
      <bean class="your.package.UserManager" lazy-init="true">
        <property name="dao" ref="userDao"/>
      </bean>
    </property>
  </bean>

另外,EnumUserType 是一個值與Enum與資料庫值對應的類別,內有說明
4.GWT compile時,必須參考到源代碼(無法參考Jar檔),預設上GWT會參考到 client目錄,所以GWT Code原則上放在這個目錄,
但是我將GWT-RPC相關的Code放在 Server目錄下,所以必須修改 Application.gwt.xml 檔案,指向 GWT編譯所須的目錄
5.GWT原始提供的RPC有點陽春無法直接使用Spring,我以我用了GWT Server Library
org.gwtwidgets.server.spring.extended是我改寫的幾個類別,我的GWT-RPC實做直接繼承GWTHttpAwareRPCService
(不要學GWT-SL所附的範例那般用AOP的方式插入HttpRequest、HttpResponse物件,若是動用到Security的<intercept-methods>時,會失效)
6.GWT-Ext是套不錯的Liberary,LGPL可直接包到您的商業程式內,另外一套類似的是
Ext Gwt,GPL License,比較快,Google一下,您可發現有非常多的現成的元件可用
7.若是您可以改善這個程式,也請不吝指教

GwtWeb.zip (30.43k)


kentyeh edited on 2009-02-25 10:35
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
6030 GWT+Spring+Spring Security+Hibernate範例 kentyeh 2700 2009-02-24 23:13
4586 Re:GWT+Spring+Spring Security+Hibernate範例 newersky2009 261 2009-07-27 23:54
4200 Re:GWT+Spring+Spring Security+Hibernate範例 angjunwen 222 2010-01-08 18:00
3401 Re:GWT+Spring+Spring Security+Hibernate範例 ldlzp 9 2010-05-07 10:26
» JWorld@TW »  AJAX討論區 » GWT

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8