<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xyz20003

    www.mossle.com
    隨筆 - 34, 文章 - 0, 評(píng)論 - 124, 引用 - 0
    數(shù)據(jù)加載中……

    2009年12月18日

    spring security權(quán)限管理手冊(cè)升級(jí)至spring security-3.1.3

    費(fèi)了半天勁,終于把原來基于spring security 2.0.5的權(quán)限管理手冊(cè)升級(jí)到3.1.3。

    除了官方已經(jīng)不再支持ntlm和portal兩個(gè)例子之外,其他的實(shí)例都已經(jīng)通過了測(cè)試。下一步計(jì)劃是對(duì)整體內(nèi)容進(jìn)行整理,再加上3.1.3提供的新功能。

     

    目錄索引鏈接如下:

     

    序言
    I. 基礎(chǔ)篇

    1. 一個(gè)簡(jiǎn)單的HelloWorld

    1.1. 配置過濾器
    1.2. 使用命名空間
    1.3. 完善整個(gè)項(xiàng)目
    1.4. 運(yùn)行示例
    2. 使用數(shù)據(jù)庫(kù)管理用戶權(quán)限

    2.1. 修改配置文件
    2.2. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)
    3. 自定義數(shù)據(jù)庫(kù)表結(jié)構(gòu)

    3.1. 自定義表結(jié)構(gòu)
    3.2. 初始化數(shù)據(jù)
    3.3. 獲得自定義用戶權(quán)限信息

    3.3.1. 處理用戶登陸
    3.3.2. 檢驗(yàn)用戶權(quán)限
    4. 自定義登陸頁面

    4.1. 實(shí)現(xiàn)自定義登陸頁面
    4.2. 修改配置文件
    4.3. 登陸頁面中的參數(shù)配置
    4.4. 測(cè)試一下
    5. 使用數(shù)據(jù)庫(kù)管理資源

    5.1. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)
    5.2. 初始化數(shù)據(jù)
    5.3. 實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中讀取資源信息

    5.3.1. 需要何種數(shù)據(jù)格式
    5.3.2. 替換原有功能的切入點(diǎn)
    6. 控制用戶信息

    6.1. MD5加密
    6.2. 鹽值加密
    6.3. 用戶信息緩存
    6.4. 獲取當(dāng)前用戶信息
    7. 自定義訪問拒絕頁面
    8. 動(dòng)態(tài)管理資源結(jié)合自定義登錄頁面
    9. 中文用戶名
    10. 判斷用戶是否登錄
    II. 保護(hù)web篇

    11. 圖解過濾器

    11.1. HttpSessionContextIntegrationFilter
    11.2. LogoutFilter
    11.3. AuthenticationProcessingFilter
    11.4. DefaultLoginPageGeneratingFilter
    11.5. BasicProcessingFilter
    11.6. SecurityContextHolderAwareRequestFilter
    11.7. RememberMeProcessingFilter
    11.8. AnonymousProcessingFilter
    11.9. ExceptionTranslationFilter
    11.10. SessionFixationProtectionFilter
    11.11. FilterSecurityInterceptor
    12. 管理會(huì)話

    12.1. 添加監(jiān)聽器
    12.2. 添加過濾器
    12.3. 控制策略

    12.3.1. 后面的用戶禁止登陸
    12.3.2. 后登陸的將先登錄的踢出系統(tǒng)
    13. 單點(diǎn)登錄

    13.1. 配置JA-SIG
    13.2. 配置Spring Security

    13.2.1. 添加依賴
    13.2.2. 修改applicationContext.xml
    13.3. 運(yùn)行配置了cas的子系統(tǒng)
    13.4. 為cas配置SSL

    13.4.1. 生成密鑰
    13.4.2. 為jetty配置SSL
    13.4.3. 為tomcat配置SSL
    14. basic認(rèn)證

    14.1. 配置basic驗(yàn)證
    14.2. 編程實(shí)現(xiàn)basic客戶端
    15. 標(biāo)簽庫(kù)

    15.1. 配置taglib
    15.2. authenticaiton
    15.3. authorize
    15.4. acl/accesscontrollist
    15.5. 為不同用戶顯示各自的登陸成功頁面
    16. 自動(dòng)登錄

    16.1. 默認(rèn)策略
    16.2. 持久化策略
    17. 匿名登錄

    17.1. 配置文件
    17.2. 修改默認(rèn)用戶名
    17.3. 匿名用戶的限制
    18. 防御會(huì)話偽造

    18.1. 攻擊場(chǎng)景
    18.2. 解決會(huì)話偽造
    19. 預(yù)先認(rèn)證

    19.1. 為jetty配置Realm
    19.2. 配置Spring Security
    20. 切換用戶

    20.1. 配置方式
    20.2. 實(shí)例演示
    21. 信道安全

    21.1. 設(shè)置信道安全
    21.2. 指定http和https的端口
    22. digest認(rèn)證

    22.1. 配置digest驗(yàn)證
    22.2. 使用ajax實(shí)現(xiàn)digest認(rèn)證
    22.3. 編程實(shí)現(xiàn)digest客戶端
    23. 通過LDAP獲取用戶信息
    24. 通過OpenID進(jìn)行登錄

    24.1. 配置
    24.2. 系統(tǒng)時(shí)間問題
    24.3. openid4java的處理流程
    25. 使用X509登錄

    25.1. 生成證書
    25.2. 配置服務(wù)器使用雙向加密
    25.3. 配置X509認(rèn)證
    26. 使用NTLM登錄
    27. 使用JAAS機(jī)制
    28. 使用HttpInvoker
    29. 使用rmi
    30. 控制portal的權(quán)限
    31. 保存登錄之前的請(qǐng)求
    32. 記錄操作日志
    III. 內(nèi)部機(jī)制篇

    33. 保護(hù)方法調(diào)用

    33.1. 控制全局范圍的方法權(quán)限
    33.2. 控制某個(gè)bean內(nèi)的方法權(quán)限
    33.3. 使用annotation控制方法權(quán)限

    33.3.1. 使用Secured
    33.3.2. 使用jsr250
    34. 權(quán)限管理的基本概念

    34.1. 認(rèn)證與驗(yàn)證
    34.2. SecurityContext安全上下文
    34.3. Authentication驗(yàn)證對(duì)象
    35. Voter表決者

    35.1. Voter表決者
    35.2. RoleVoter
    35.3. AuthenticatedVoter
    35.4. AbstractAclVoter
    36. 攔截器

    36.1. 權(quán)限配置數(shù)據(jù)源
    36.2. 權(quán)限管理器
    36.3. 后置調(diào)用管理器
    36.4. 臨時(shí)分配額外權(quán)限
    37. 用戶信息

    37.1. UserDetails
    37.2. 使用角色繼承
    37.3. 為ACL添加角色繼承
    37.4. PasswordEncoder和SaltValue
    38. 集成jcaptcha
    39. 動(dòng)態(tài)資源管理

    39.1. 基本知識(shí)
    39.2. 讀取資源
    39.3. URL資源擴(kuò)展點(diǎn)
    39.4. METHOD資源擴(kuò)展點(diǎn)
    40. 擴(kuò)展UserDetails

    40.1. 實(shí)現(xiàn)UserDetails接口
    40.2. 實(shí)現(xiàn)UserDetailsService接口
    40.3. 修改配置文件
    40.4. 測(cè)試運(yùn)行
    41. 鎖定用戶
    42. 設(shè)置過濾器鏈
    43. 自定義過濾器
    44. 使用用戶組

    44.1. 數(shù)據(jù)庫(kù)結(jié)構(gòu)
    44.2. 修改配置文件
    45. 在JSF中使用Spring Security

    45.1. 修改過濾器支持forward
    45.2. 自定義登錄頁面
    45.3. 顯示密碼錯(cuò)誤信息
    46. 自定義會(huì)話管理

    46.1. 默認(rèn)策略的缺陷
    46.2. 記錄用戶名與ip
    46.3. 改造控制類
    46.4. 修改配置文件
    47. 匹配URL地址

    47.1. AntPathRequestMatcher
    47.2. RegexRequestMatcher
    48. 配置過濾器

    48.1. 標(biāo)準(zhǔn)過濾器
    48.2. 在http中啟用標(biāo)準(zhǔn)過濾器
    48.3. 為自定義過濾器設(shè)置位置
    49. 監(jiān)控會(huì)話過期

    49.1. 實(shí)現(xiàn)原理
    49.2. 代碼實(shí)現(xiàn)
    49.3. 目前實(shí)現(xiàn)的缺陷
    50. 多個(gè)登陸頁面

    50.1. 未登錄自動(dòng)跳轉(zhuǎn)到對(duì)應(yīng)的登錄頁面
    50.2. 密碼出錯(cuò)時(shí)返回對(duì)應(yīng)頁面
    51. 角色繼承

    51.1. 使用RoleHierarchyVoter
    51.2. 使用數(shù)據(jù)庫(kù)實(shí)現(xiàn)RoleHierarchy
    52. 設(shè)置方法攔截器
    IV. ACL篇

    53. ACL基本操作

    53.1. 準(zhǔn)備數(shù)據(jù)庫(kù)和aclService

    53.1.1. 為acl配置cache
    53.1.2. 配置lookupStrategy
    53.1.3. 配置aclService
    53.2. 使用aclService管理acl信息
    53.3. 使用acl控制delete操作
    53.4. 控制用戶可以看到哪些信息
    54. 管理acl

    54.1. 管理多個(gè)domain類
    54.2. 動(dòng)態(tài)授權(quán)與收回授權(quán)

    54.2.1. 獲得對(duì)象的acl權(quán)限
    54.2.2. 添加授權(quán)
    54.2.3. 收回授權(quán)
    55. acl自動(dòng)提醒

    55.1. 自動(dòng)創(chuàng)建acl
    55.2. 自動(dòng)刪除acl
    55.3. 根據(jù)id刪除acl
    V. 最佳實(shí)踐篇

    56. 最簡(jiǎn)控制臺(tái)

    56.1. 平臺(tái)搭建
    56.2. 用戶登錄
    56.3. 用戶信息列表
    56.4. 添加用戶
    56.5. 修改用戶信息
    56.6. 修改自己的密碼
    57. 用戶組控制臺(tái)

    57.1. 添加對(duì)用戶組的支持
    57.2. 瀏覽用戶組
    57.3. 創(chuàng)建用戶組
    57.4. 修改用戶組
    A. 修改日志
    B. 常見問題解答
    C. Spring Security-3.0.0.M1

    C.1. Hello World
    C.2. Spring-EL
    C.3. RoleHierarchy
    C.4. Success Handler
    C.5. REST下的權(quán)限控制
    C.6. 管理會(huì)話同步
    D. 命名空間

    D.1. http
    D.2. authentication-provider
    D.3. ldap-server
    D.4. global-method-security
    E. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)

    E.1. User
    E.2. Group
    E.3. RememberMe
    E.4. ACL
    F. 異常
    G. 事件
    H. RBAC模型(轉(zhuǎn)載)

    H.1. RBAC模型介紹
    H.2. 有關(guān)概念

    H.2.1. 什么是角色
    H.2.2. 角色與用戶組
    H.3. 基本模型RBAC0

    H.3.1. RBAC0 模型的形式定義如下
    H.4. 角色分級(jí)模型RBAC1

    H.4.1. 定義2:RBAC1 由以下內(nèi)容確定
    H.5. 限制模型RBAC2

    H.5.1. 定義3:
    H.6. 統(tǒng)一模型RBAC3
    H.7. 定義4
    H.8. 在ARBAC97中,包括三種組件
    H.9. RBAC模型的特點(diǎn)
    H.10. 基于party的模型
    H.11. 有關(guān)operation
    I. 認(rèn)證流程

    posted @ 2012-12-08 01:04 臨遠(yuǎn) 閱讀(6122) | 評(píng)論 (7)編輯 收藏

    輕量級(jí)工作流引擎jBPM 4.4正式發(fā)布

    jBPM-4.4于2010年7月19日正式發(fā)布。

    jBPM是jBoss旗下的一款開源工作流引擎,它的特色是提供了eclipse插件,開發(fā)人員可以通過插件直接繪畫出業(yè)務(wù)流程圖。



    jBPM 4是jBPM的最新一代產(chǎn)品,它提供的PVM(流程虛擬機(jī))可以支持多種流程語言,默認(rèn)支持的是jBPM自己的jPDL流程語言,從jBPM-4.3開 始,又提供了對(duì)BPMN-2.0的支持(不過還不完全)。jBPM的發(fā)布包中提供了一鍵式安裝的ant腳本,可以將jBPM流程引擎以及配套的管理控制 臺(tái),流程設(shè)計(jì)器一次性安裝到本機(jī)上運(yùn)行使用。

    安裝配置的詳細(xì)步驟可以參考官方的用戶手冊(cè):http://www.family168.com/tutorial/jbpm4.0/html/installation.html

    最新發(fā)布的jBPM-4.4中解決了108個(gè)issue,不過它距離上次發(fā)布也半年有余了,jBPM-4.3發(fā)布于2009年12月底。

    jBPM-4.4是一個(gè)bug fix版本,并未對(duì)數(shù)據(jù)庫(kù)有任何修改,使用之前版本的項(xiàng)目基本可以平滑升級(jí)。在進(jìn)行升級(jí)時(shí)需要注意:

    1.Activity和Transition兩個(gè)接口從org.jbpm.pvm.internal.model包下移動(dòng)到了 org.jbpm.api.model包下。
    2.所有與el表達(dá)式相關(guān)的部分都替換為新加的org.jbpm.pvm.internal.el.Expression。

    添加的幾個(gè)重要功能:
    1.for each支持動(dòng)態(tài)的并發(fā)分支流程,會(huì)簽和并發(fā)子流程都可以用它來實(shí)現(xiàn)了。
    2.assign活動(dòng),可以對(duì)變量的值進(jìn)行復(fù)制。
    3.變量聲明,可以在xml里聲明變量。
    4.修正了console在tomcat下找不到dataSource的問題(包括報(bào)表)。

    詳細(xì)的發(fā)布信息,請(qǐng)參考官方的JIRA:https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=10052&version=12314183

    用Alejandro的話說,This makes 4.4 the most cat-friendly jBPM yet!下個(gè)版本會(huì)對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行修改了,以便完善流程歷史庫(kù)的功能。

    相關(guān)的發(fā)布下載與文檔資源如下:
    Subversion tag: http://anonsvn.jboss.org/repos/jbpm/jbpm4/tags/jbpm-4.4/
    Maven artifact: http://repository.jboss.org/nexus/content/repositories/releases/org/jbpm/jbpm4/jbpm/4.4/
    SourceForge file: https://downloads.sourceforge.net/project/jbpm/jBPM%204/jbpm-4.4/jbpm-4.4.zip

    User Guide: http://docs.jboss.com/jbpm/v4/userguide/html_single/
    Developer Guide: http://docs.jboss.com/jbpm/v4/devguide/html_single/
    Maven Artifact: http://repository.jboss.org/nexus/content/repositories/releases/org/jbpm/jbpm4/jbpm/4.4/

    另附我們翻譯的用戶手冊(cè)和開發(fā)指南:
    用戶手冊(cè):http://www.family168.com/tutorial/jbpm4.0/html/index.html
    開發(fā)指南:http://www.family168.com/tutorial/jbpm4devguide/html/index.html

    posted @ 2010-07-20 16:20 臨遠(yuǎn) 閱讀(2383) | 評(píng)論 (3)編輯 收藏

    拖延一個(gè)多月后,jBPM-4.4發(fā)布CR1候選版

    Alejandro太謹(jǐn)慎了,發(fā)布jBPM-4.4之前還搞了一個(gè)CR1候選版,被jBPM-4.3里那些bug困擾的同志可以直接下載這個(gè)版本使用了, 這個(gè)候選版和jBPM-4.4最終發(fā)布版基本不會(huì)有太大區(qū)別,下載地址如下:

    http://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/jbpm-4.4.CR1.zip/download

    在之前的帖子jBPM 4.4發(fā)布日期暫定于2010年6月4日里提到的幾個(gè)新特性都有了結(jié)果:

    1.支持foreach,這個(gè)是真正的動(dòng)態(tài)分支功能,想玩會(huì)簽嗎?想玩動(dòng)態(tài)分支嗎?想實(shí)現(xiàn)動(dòng)態(tài)子流程嗎?用foreach就對(duì)了。

    2.支持在jpdl的xml中聲明變量,可以聲明實(shí)例級(jí)全局變量,也可以聲明活動(dòng)級(jí)的局部變量。

    現(xiàn)在這兩個(gè)重量級(jí)的功能都可以使用了。

    對(duì)于BPMN2的支持也加強(qiáng)了一部分,包括m選n的inclusive gate way和可以定時(shí)啟動(dòng)的TimerStartEventActivity。不過BPMN2新增的功能都是joraz走之前實(shí)現(xiàn)的,以后jBPM 4的BPMN2能走多遠(yuǎn)還是未知數(shù)。

    jBPM 4.4目前解決了100多個(gè)issue,詳細(xì)的issue列表可以參考這里:

    https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=10052&version=12314183

    最后雙手合十,誠(chéng)信禱告jBPM-4.4早日發(fā)布。這樣我們才能集中精力開始下一階段的開發(fā)。

    posted @ 2010-07-15 22:18 臨遠(yuǎn) 閱讀(1459) | 評(píng)論 (2)編輯 收藏

    jBPM 4.4發(fā)布日期暫定于2010年6月4日

    jbpm官方終于傳來好消息,jBPM 4.4可能在下月初發(fā)布。以下是當(dāng)前project leader的聲明:

    We are down to 9 unresolved issues left before releasing 4.4. Given the current progress, it should be possible to release jBPM 4.4 on June 4th; the date is of course tentative and subject to change. Right now the only blocker issue is JBPM-2872: fix hudson db job. All others are deferrable if not completed on time.

    If you feel like there is an issue that should not be left out, the time to bring it up is now. Visit the developers forum if you want to do so.


    聲明地址:http://community.jboss.org/thread/152282?tstart=0

    簡(jiǎn)單來說,就是還剩下9個(gè)未處理事務(wù),按當(dāng)前進(jìn)度應(yīng)該可以在6月4日發(fā)布jBPM 4.4,其中最重要的問題是修正hudson下的db任務(wù)。最后向社區(qū)征集意見,如果誰感覺有啥issue應(yīng)該在jbpm 4.4里解決的話,就趕快提出來撒。

    jBPM 4.4的詳細(xì)發(fā)布信息可以參考這里https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=10052&version=12314183, 一共是75個(gè)issue,目前已解決66個(gè)。這個(gè)版本主要是進(jìn)行bug fix,也提供了幾個(gè)重量級(jí)的新功能。

    1.解決嵌套fork/join每次嵌套會(huì)出現(xiàn)多余execution的問題。
    2.任務(wù)超時(shí)或者手工執(zhí)行signal后,自動(dòng)刪除過期task。
    3.讓sub-process的id和key都支持表達(dá)式。
    4.支持在xml中聲明變量。(還在討論中)
    5.在fork中使用assignmentHandler會(huì)拋出NullPointerException。

    另外還有for-each動(dòng)態(tài)fork分支這個(gè)功能,還在研究是不是要放在jbpm-4.4里,感興趣的同志可以來官方論壇提出意見。
    http://community.jboss.org/thread/152243?tstart=0

    posted @ 2010-05-24 09:57 臨遠(yuǎn) 閱讀(1757) | 評(píng)論 (0)編輯 收藏

    jBPM創(chuàng)始人發(fā)布BPMN原生引擎Activiti-5.0-alpha1

    Tom Baeyens也就是jBPM的原作者,離開了Red Hat之后,另起爐灶搞了一個(gè)Activiti的項(xiàng)目,這個(gè)項(xiàng)目是基于BPMN的原生流程引擎。

    那么這個(gè)activiti到底有啥好處呢?讓咱們一一道來:

    它基于的Apache 2.0開源協(xié)議,比jBPM的LGPL更加寬松。

    它是基于BPMN2.0標(biāo)準(zhǔn)規(guī)范的,最大的好處就是可以用oryz這個(gè)web流程設(shè)計(jì)器直接在web瀏覽器上設(shè)計(jì)流程了。(注:別高興太早,oryz是用svg寫的,IE一律不支持。)

    它是基于ibatis的,數(shù)據(jù)庫(kù)層不再對(duì)hibernate有依賴。(注:alpha1只支持h2database,后面的版本會(huì)對(duì)mysql, oracle,postegl進(jìn)行支持)

    選用BPMN作為標(biāo)準(zhǔn)流程語言,也意味著原來的jBPM里的jPDL流程語言將不會(huì)被繼續(xù)支持,也不知道PVM流程虛擬機(jī)是否會(huì)繼續(xù)下去,如果Tom不想 玩虛擬機(jī)了,activiti很可能就是一個(gè)只支持一種流程語言的引擎了。這點(diǎn)確實(shí)讓人感到有點(diǎn)兒遺憾。

    從www.activiti.org這個(gè)網(wǎng)站上可以下載到alpha1的發(fā)布包,其中包含了源代碼,草草看了一下,核心庫(kù)只有200多K,其中把原來自行實(shí)現(xiàn)的IoC自動(dòng)注入的代碼都刪掉了。以后的IoC工作可能統(tǒng)一交給spring去管理,這對(duì)使用spring的同志來說,無疑是一個(gè)天大的好消息。

    api部分對(duì)外部接口進(jìn)行了簡(jiǎn)化,ExternalActivityBehaviour不見了,換成了EventActivityBehaviour,這一點(diǎn)讓我感覺很舒服,畢竟signal其實(shí)也只是事件的一種特例,換成eventActivityBehaviour之后,也就意味著我們可以讓活動(dòng)節(jié)點(diǎn)支持更多事件處理操作了。

    持久化部分換成了ibatis,這部分暫時(shí)還只支持h2database,腳本什么的也只有h2database的,雖然因?yàn)閍lpha1版本,功能不多情有可原,但是我還是擔(dān)心使用ibatis會(huì)否大幅度增加數(shù)據(jù)庫(kù)存儲(chǔ)部分的維護(hù)量。希望后續(xù)發(fā)展不要因?yàn)檫@部分的問題遇到障礙。

    表結(jié)構(gòu)似乎和原來的jbpm4差不多,有些表名發(fā)生了變化。表的數(shù)目又少了很多,但是我情愿認(rèn)為這不是為了優(yōu)化,而是因?yàn)檫@個(gè)版本不成熟,因?yàn)榭床坏絣og和history相關(guān)的表,所以,現(xiàn)在這個(gè)版本應(yīng)該是沒有歷史留痕功能的。也沒有看到變量表,也許都是用二進(jìn)制的方式來保存的吧?

    對(duì)BPMN2支持的部分,目前支持StartEvent, EndEvent, Task和UserTask,其他的都不支持,所以還是需要時(shí)間完善的。

    實(shí)際上Tom和Joram的編碼能力還是相當(dāng)驚人的,從他們倆離開Red Hat到現(xiàn)在才不過兩個(gè)月,就立刻搞出這么一個(gè)東西,而且網(wǎng)站也搞得有模有樣的,真心希望他們能延續(xù)RoadMap,把這個(gè)項(xiàng)目完善起來。

    項(xiàng)目首頁:http://www.activiti.org/

    posted @ 2010-05-20 09:25 臨遠(yuǎn) 閱讀(2170) | 評(píng)論 (1)編輯 收藏

    請(qǐng)把a(bǔ)cegi替換成Spring Security(內(nèi)附視頻)

    在對(duì)web項(xiàng)目進(jìn)行權(quán)限管理時(shí),采用的方法無非是寫一大堆JSP或者干脆一個(gè)Filter搞定。寫完簡(jiǎn)單的權(quán)限功能后,又開始考慮如何自動(dòng)記憶上次用戶信 息,限制每臺(tái)機(jī)器只能有一個(gè)用戶登錄,把用戶密碼進(jìn)行加密。接著更上一層樓,嘗試實(shí)現(xiàn)單點(diǎn)登錄,使用HTTPS保護(hù)傳輸數(shù)據(jù),防御會(huì)話偽造攻擊等等。

    于是好幾年前出現(xiàn)了名叫acegi的東西,它建立在spring的基礎(chǔ)上,提供了可以豐盛的權(quán)限功能集合,同時(shí)也以極為變態(tài)的復(fù)雜配置給了我們這 些初試權(quán)限的人悶頭一棍。甚至網(wǎng)上已經(jīng)有人流傳“every time you use acegi, a fairy die”——每當(dāng)有人使用acegi時(shí),就會(huì)有一個(gè)精靈死去。

    正因?yàn)槿绱耍琣cegi在加入spring陣營(yíng)時(shí),不但改頭換面改名成為Spring Security,而且在配置方面進(jìn)行了極大的簡(jiǎn)化,形象的來說就是:“現(xiàn)在只需要20行的配置文件就可以完成之前幾百行才能實(shí)現(xiàn)的功能”。

    遺憾的是,現(xiàn)在依然可以看到還有人在使用acegi,甚至還有人在學(xué)習(xí)acegi,這種情況無疑讓我們感到痛心疾首。

    為了世界上不會(huì)再有精靈無謂犧牲,也為了大家的身心健康,我在此大聲疾呼:“請(qǐng)把a(bǔ)cegi替換成Spring Security。”尤其對(duì)那些希望學(xué)習(xí)acegi的同志,請(qǐng)直接學(xué)習(xí)Spring Security。

    下面是《請(qǐng)把a(bǔ)cegi替換成Spring Security》的附帶視頻,希望大家了解Spring Security的簡(jiǎn)潔。
    http://code.google.com/p/family168/downloads/detail?name=springsecurity.zip

    posted @ 2010-03-22 09:59 臨遠(yuǎn) 閱讀(2876) | 評(píng)論 (4)編輯 收藏

    跟我學(xué)工作流——jBPM4視頻教程(免費(fèi))

    新的一年,為了讓工作流方面的初學(xué)者更快上手開發(fā),我們錄制了jBPM 4視頻教程,這套教程基于最新發(fā)布的jBPM 4.3,覆蓋了開發(fā)環(huán)境的搭建,jBPM 4與WEB工程的集成,請(qǐng)假流程的完整實(shí)例,jBPM 4的組織機(jī)構(gòu),事件監(jiān)聽,以及流程圖的跟蹤等功能。

    我們的網(wǎng)站提供了相關(guān)視頻和實(shí)例的免費(fèi)下載,對(duì)工作流以及jBPM 4有興趣的朋友可以關(guān)注一下,也希望更多朋友在工作流方面給我們提出建議。jBPM 4視頻教程首頁:http://www.family168.com/jbpm4/video.html

    《jBPM 4視頻教程》:基于jBPM 4.3,發(fā)布日期2010-3-5。
    NO. 分級(jí) 標(biāo)題  
    01 《配置開發(fā)環(huán)境》:下載jBPM 4和eclipse,安裝GPD流程設(shè)計(jì)器,設(shè)計(jì)簡(jiǎn)單流程。 下載   提意見
    02 《管理流程定義》:將流程定義發(fā)布到流程引擎中,實(shí)現(xiàn)查看和刪除流程定義的功能。 下載   提意見
    03 《管理流程實(shí)例》:發(fā)起新流程,使暫停的流程繼續(xù)運(yùn)行,實(shí)現(xiàn)終止和刪除流程實(shí)例。 下載   提意見
    04 《設(shè)計(jì)請(qǐng)假流程》:以請(qǐng)假審批流程為例,以web的方式發(fā)布新流程定義。 下載   提意見
    05 《發(fā)起新流程》:在流程定義中設(shè)置任務(wù)分配,提供接收和完成任務(wù)的功能。 下載   提意見
    06 《流程駁回》:實(shí)現(xiàn)流程駁回和重新提交申請(qǐng)的功能。 下載   提意見
    07 《組織機(jī)構(gòu)》:介紹jBPM 4中默認(rèn)提供的組織機(jī)構(gòu)。 下載   提意見
    08 《監(jiān)聽事件》:為流程定義設(shè)置事件,監(jiān)聽流程執(zhí)行時(shí)觸發(fā)的事件。 下載   提意見
    09 《跟蹤流程圖》:顯示流程圖,跟蹤當(dāng)前路程實(shí)例的狀態(tài)。 下載   提意見
    www.family168.com - Lingo


    posted @ 2010-03-06 10:02 臨遠(yuǎn) 閱讀(5765) | 評(píng)論 (11)編輯 收藏

    jBPM-4.x常見問題解決方案FAQ

         摘要: 這段時(shí)間整理的jBPM-4.x常見問題以及解決方案,希望幫助對(duì)jBPM-4.x感興趣的同學(xué)少走彎路,如果有沒有覆蓋到的問題,請(qǐng)及時(shí)和我們聯(lián)系,我們會(huì)盡快更新這個(gè)FAQ,先說一句多謝了。:)  閱讀全文

    posted @ 2010-01-22 09:19 臨遠(yuǎn) 閱讀(2417) | 評(píng)論 (3)編輯 收藏

    Spring Security-3.0.1中文官方文檔(翻譯版)

         摘要: 這次發(fā)布的Spring Security-3.0.1是一個(gè)bug fix版,主要是對(duì)3.0中存在的一些問題進(jìn)行修正。文檔中沒有添加新功能的介紹,但是將之前拼寫錯(cuò)誤的一些類名進(jìn)行了修正,建議開發(fā)者以這一版本的文檔為參考。

    另:Spring Security從2010-01-01以后,版本控制從SVN換成了GIT,我們?cè)诜g文檔的時(shí)候,主要是根據(jù)SVN的變化來進(jìn)行文檔內(nèi)容的比對(duì),這次換成GIT后,感覺缺少了之前那種文本比對(duì)工具,如果有對(duì)GIT熟悉的朋友,還請(qǐng)推薦一下文本比對(duì)的工具,謝謝。  閱讀全文

    posted @ 2010-01-19 09:37 臨遠(yuǎn) 閱讀(5387) | 評(píng)論 (0)編輯 收藏

    輕量級(jí)工作流jBPM-4.3官方“開發(fā)指南”中文版



    jbpm4devguide

    jBPM-4.3開發(fā)手冊(cè)

    1.0

    2009-05-16 19:29:47


    序言
    1. 簡(jiǎn)介
    1.1. 目標(biāo)讀者
    1.2. 概述
    1.3. 源代碼和WIKI
    1.4. Maven倉(cāng)庫(kù)
    1.5. 依賴庫(kù)
    2. 孵化器
    2.1. timer定時(shí)器
    2.1.1. 持續(xù)時(shí)間表達(dá)式
    2.1.2. 工作日歷
    2.1.3. 定時(shí)器流向
    2.1.4. 定時(shí)器事件
    2.1.5. 定時(shí)器工作時(shí)間
    2.1.6. 定時(shí)器重復(fù)
    2.2. group活動(dòng)
    2.2.1. 簡(jiǎn)單group
    2.2.2. group定時(shí)器
    2.2.3. group多入口
    2.2.4. group同步
    2.2.5. group秘密
    2.3. 規(guī)則發(fā)布器
    2.4. java 活動(dòng)
    2.5. rules-decision 活動(dòng)
    2.6. rules 活動(dòng)
    2.7. jms 活動(dòng)
    2.7.1. 為簡(jiǎn)化測(cè)試模擬JMS提供器
    2.7.2. 文本消息
    2.7.3. 對(duì)象消息
    2.7.4. Map消息
    2.8. 歷史會(huì)話鏈
    2.9. 創(chuàng)建認(rèn)證組
    2.10. 任務(wù)表單
    2.10.1. 使用方法
    2.10.2. 表單格式
    2.11. 實(shí)例遷移
    2.11.1. 簡(jiǎn)單遷移
    2.11.2. 結(jié)束運(yùn)行中的實(shí)例
    2.11.3. 版本范圍
    2.11.4. 活動(dòng)映射
    2.11.5. 遷移處理器
    2.12. 用戶對(duì)象緩存
    2.13. 事務(wù)
    2.13.1. 獨(dú)立事務(wù)
    2.13.2. JTA事務(wù)
    2.13.3. 用戶事務(wù)
    3. BPMN 2.0
    3.1. BPMN 2.0是什么呢?
    3.2. 歷史和目標(biāo)
    3.3. JPDL vs BPMN 2.0
    3.4. Bpmn 2.0 執(zhí)行
    3.5. 配置
    3.6. 實(shí)例
    3.7. 流程根元素
    3.8. 基本結(jié)構(gòu)
    3.8.1. 事件
    3.8.2. 事件:空啟動(dòng)事件
    3.8.3. 事件:空結(jié)束事件
    3.8.4. 事件:終止結(jié)束事件
    3.8.5. 順序流
    3.8.6. 網(wǎng)關(guān)
    3.8.7. 網(wǎng)關(guān):唯一網(wǎng)關(guān)
    3.8.8. 網(wǎng)關(guān):并行網(wǎng)關(guān)
    3.8.9. 任務(wù)
    3.8.10. 任務(wù):人工任務(wù)
    3.8.11. 任務(wù):Java服務(wù)任務(wù)
    3.8.12. 任務(wù):腳本任務(wù)
    3.8.13. 任務(wù):手工任務(wù)
    3.8.14. 任務(wù):java接收任務(wù)
    3.9. 完全的實(shí)例(包括控制臺(tái)任務(wù)表單)
    4. 從jBPM3轉(zhuǎn)換到j(luò)BPM4
    4.1. jBPM 4的目標(biāo)
    4.2. 知識(shí)范圍
    4.3. 流程轉(zhuǎn)換工具
    4.3.1. 概述
    4.3.2. 參數(shù)
    4.3.3. 使用示例
    4.3.4. 高級(jí)應(yīng)用
    4.4. 解釋和修改
    5. 流程虛擬機(jī)
    6. 架構(gòu)
    6.1. APIs
    6.2. 活動(dòng)API
    6.3. 事件監(jiān)聽API
    6.4. 客戶端API
    6.5. 環(huán)境
    6.6. 命令
    6.7. 服務(wù)
    7. 實(shí)現(xiàn)基本活動(dòng)
    7.1. ActivityBehaviour
    7.2. ActivityBehaviour實(shí)例
    7.3. ExternalActivityBehaviour
    7.4. ExternalActivity實(shí)例
    7.5. 基本流程執(zhí)行
    7.6. 事件
    7.7. 事件傳播
    8. 流程剖析
    9. 高級(jí)圖形執(zhí)行
    9.1. 循環(huán)
    9.2. 默認(rèn)執(zhí)行行為
    9.3. 功能活動(dòng)
    9.4. 執(zhí)行和線程
    9.5. 流程同步
    9.6. 異常處理器
    9.7. 流程修改
    9.8. 鎖定和流程狀態(tài)
    10. 配置
    10.1. 基本配置
    10.2. 自定義工作日歷
    10.3. 自定義身份認(rèn)證組件
    11. 持久化
    12. 計(jì)劃執(zhí)行器
    12.1. 概述
    12.2. 配置
    13. 高級(jí)郵件支持
    13.1. 生產(chǎn)者
    13.1.1. 默認(rèn)生產(chǎn)者
    13.2. 模板
    13.3. 服務(wù)器
    13.3.1. 多服務(wù)器
    13.4. 擴(kuò)展點(diǎn)
    13.4.1. 自定義生產(chǎn)者
    13.4.1.1. 例子:自定義附件
    14. 軟件日志
    14.1. 配置
    14.2. 目錄
    14.3. JDK日志
    14.4. 調(diào)試持久化
    15. 歷史
    16. JBoss集成
    16.1. 打包流程歸檔
    16.2. 把流程歸檔發(fā)布成一個(gè)jBoss實(shí)例
    16.3. 流程發(fā)布和版本管理
    16.4. 流程引擎和J2EE/JEE編程模型
    17. Spring集成
    17.1. 概述
    17.2. 配置
    17.3. 使用
    17.4. 測(cè)試
    18. Signavio web建模器
    18.1. 簡(jiǎn)介
    18.2. 安裝
    18.3. 配置
    A. 修改日志


    posted @ 2009-12-30 11:19 臨遠(yuǎn) 閱讀(4351) | 評(píng)論 (2)編輯 收藏

    輕量級(jí)工作流jBPM-4.3官方“用戶手冊(cè)”中文版



    jBPM4.3用戶指南

    翻譯官方文檔

    JBoss jBPM Teams

    4.3

    family168

    2009年11月1日



    1. 導(dǎo)言
    1.1. 許可證與最終用戶許可協(xié)議
    1.2. 下載
    1.3. 源碼
    1.4. 什么是jBPM
    1.5. 文檔內(nèi)容
    1.6. 從jBPM 3升級(jí)到j(luò)BPM 4
    1.7. 報(bào)告問題
    2. 安裝配置
    2.1. 發(fā)布
    2.2. 必須安裝的軟件
    2.3. 快速上手
    2.4. 安裝腳本
    2.5. 依賴庫(kù)和配置文件
    2.6. JBoss
    2.7. Tomcat
    2.8. Signavio基于web的流程編輯器
    2.9. 用戶web應(yīng)用
    2.10. 數(shù)據(jù)庫(kù)
    2.10.1. 創(chuàng)建或刪除表結(jié)構(gòu)
    2.10.2. 更新已存在的數(shù)據(jù)庫(kù)
    2.11. 流程設(shè)計(jì)器(GPD)
    2.11.1. 獲得eclipse
    2.11.2. 在eclipse中安裝GPD插件
    2.11.3. 配置jBPM運(yùn)行時(shí)
    2.11.4. 定義jBPM用戶庫(kù)
    2.11.5. 在目錄中添加jPDL4模式
    2.11.6. 導(dǎo)入示例
    2.11.7. 使用ant添加部分文件
    3. 流程設(shè)計(jì)器(GPD)
    3.1. 創(chuàng)建一個(gè)新的流程文件
    3.2. 編輯流程文件的源碼
    4. 部署業(yè)務(wù)歸檔
    4.1. 部署流程文件和流程資源
    4.2. 部署java類
    5. 服務(wù)
    5.1. 流程定義,流程實(shí)例和執(zhí)行
    5.2. ProcessEngine流程引擎
    5.3. Deploying a process部署流程
    5.4. 刪除流程定義
    5.5. 啟動(dòng)一個(gè)新的流程實(shí)例
    5.5.1. 最新的流程實(shí)例
    5.5.2. 指定流程版本
    5.5.3. 使用key
    5.5.4. 使用變量
    5.6. 執(zhí)行等待的流向
    5.7. TaskService任務(wù)服務(wù)
    5.8. HistoryService歷史服務(wù)
    5.9. ManagementService管理服務(wù)
    5.10. 查詢 API
    6. jPDL
    6.1. process流程處理
    6.2. 控制流程Activities活動(dòng)
    6.2.1. start啟動(dòng)
    6.2.2. State狀態(tài)節(jié)點(diǎn)
    6.2.2.1. 序列狀態(tài)節(jié)點(diǎn)
    6.2.2.2. 可選擇的狀態(tài)節(jié)點(diǎn)
    6.2.3. decision決定節(jié)點(diǎn)
    6.2.3.1. decision決定條件
    6.2.3.2. decision expression唯一性表達(dá)式
    6.2.3.3. Decision handler決定處理器
    6.2.4. concurrency并發(fā)
    6.2.5. end結(jié)束
    6.2.5.1. end process instance結(jié)束流程處理實(shí)例
    6.2.5.2. end execution結(jié)束流向
    6.2.5.3. end multiple多個(gè)結(jié)束
    6.2.5.4. end State結(jié)束狀態(tài)
    6.2.6. task
    6.2.6.1. 任務(wù)分配者
    6.2.6.2. task候選人
    6.2.6.3. 任務(wù)分配處理器
    6.2.6.4. 任務(wù)泳道
    6.2.6.5. 任務(wù)變量
    6.2.6.6. 在任務(wù)中支持e-mail
    6.2.7. sub-process子流程
    6.2.7.1. sub-process變量
    6.2.7.2. sub-process外出值
    6.2.7.3. sub-process外向活動(dòng)
    6.2.8. custom
    6.3. 原子活動(dòng)
    6.3.1. java
    6.3.2. script腳本
    6.3.2.1. script expression腳本表達(dá)式
    6.3.2.2. script 文本
    6.3.3. hql
    6.3.4. sql
    6.3.5. mail
    6.4. Common activity contents通用活動(dòng)內(nèi)容
    6.5. Events事件
    6.5.1. 事件監(jiān)聽器示例
    6.5.2. 事件傳播
    6.6. 異步調(diào)用
    6.6.1. 異步活動(dòng)
    6.6.2. 異步分支
    6.7. 用戶代碼
    6.7.1. 用戶代碼配置
    6.7.2. 用戶代碼類加載器
    7. Variables變量
    7.1. 變量作用域
    7.2. 變量類型
    7.3. 更新持久化流程變量
    8. Scripting腳本
    9. Configuration配置
    9.1. 工作日歷
    9.2. Email
    A. 修改日志


    posted @ 2009-12-30 11:18 臨遠(yuǎn) 閱讀(2704) | 評(píng)論 (1)編輯 收藏

    敬獻(xiàn)Spring Security-3.x版官方文檔中文版

         摘要: Spring Security-3.x新近發(fā)布,整體的項(xiàng)目結(jié)構(gòu)和包名都出現(xiàn)了天翻地覆的變化,與此同時(shí),Spring Security-3.x中也提供了session-management和SpEL的多種強(qiáng)大功能,family168第一時(shí)間提供官方文檔的翻譯版 本,希望同大家一起領(lǐng)略Spring Security-3.x的最新時(shí)髦風(fēng)尚。 介于Spring Security官方文檔本身傾向于技術(shù)...  閱讀全文

    posted @ 2009-12-29 11:39 臨遠(yuǎn) 閱讀(5767) | 評(píng)論 (9)編輯 收藏

    讓軟件開發(fā)慢下來

    你在做軟件開發(fā)嗎?

    在啟動(dòng)項(xiàng)目前是否做好技術(shù)選型了呢?
    在設(shè)計(jì)前是否已經(jīng)理順大體需求了呢?
    在編碼前是否已經(jīng)反復(fù)思索過對(duì)應(yīng)的設(shè)計(jì)呢?
    在測(cè)試前是否已經(jīng)準(zhǔn)備好測(cè)試用例呢?
    在部署交付前是否已經(jīng)計(jì)劃好具體的功能列表呢?

    考慮過項(xiàng)目的性質(zhì)嗎?互聯(lián)網(wǎng)應(yīng)用,還是內(nèi)部網(wǎng)應(yīng)用。
    弄清了項(xiàng)目規(guī)模大小嗎?3人月可以搞定的小項(xiàng)目,還是需要幾十人月的長(zhǎng)期奮戰(zhàn)?
    確定團(tuán)隊(duì)的實(shí)力了嗎?是全員光頭新人,還是在某牛帶領(lǐng)下的小馬集團(tuán),還是經(jīng)驗(yàn)豐富的水路兩棲沖鋒隊(duì)?
    如何與客戶協(xié)同合作?瀑布式一次理清所有需求,還是需要分階段迭代,或者直接進(jìn)駐客戶公司面對(duì)面開發(fā)?

    是否要使用框架呢?還是選擇最基本的jsp, jdbc應(yīng)用。
    編碼與項(xiàng)目如何管理,使用版本控制工具?還是用U盤copy過來,copy過去?
    如果選擇版本控制工具,究竟哪一款才適合自己的情況?
    系統(tǒng)如何劃分層次?五層?三層?其他方式?
    模塊如何劃分,按功能?按業(yè)務(wù)?混合分塊?
    開發(fā)如何分工,橫向分工,各層之間接口對(duì)接?豎向劃分每個(gè)人負(fù)責(zé)從前到后一整塊。

    如何測(cè)試?手工點(diǎn)點(diǎn),還是使用自動(dòng)化測(cè)試工具。
    測(cè)試用例如何確定,如何提高測(cè)試的有效性。
    測(cè)試的結(jié)果如何反饋給開發(fā)過程,需要使用excel還是issue跟蹤系統(tǒng)?
    測(cè)試過程中可以暴露并發(fā),事務(wù)等隱性問題嗎?
    性能測(cè)試如何進(jìn)行,壓力指數(shù)應(yīng)該保證到多少?

    后期維護(hù)的方式的選擇。
    如何維護(hù)數(shù)據(jù)庫(kù)表結(jié)構(gòu)?每次exp整個(gè)數(shù)據(jù)庫(kù),到客戶公司imp,還是找一個(gè)員工手工比對(duì)所有表結(jié)構(gòu),還是直接實(shí)現(xiàn)數(shù)據(jù)庫(kù)版本化管理?
    如何為系統(tǒng)打補(bǔ)丁?視圖層的補(bǔ)丁,服務(wù)層的補(bǔ)丁,依賴庫(kù)的補(bǔ)丁。如何管理,如何實(shí)施,如何測(cè)試?
    系統(tǒng)是否擁有動(dòng)態(tài)部署的能力?在系統(tǒng)升級(jí)的過程中是否可以減小出錯(cuò)的可能?

    。。。。。。

    還有很多,還有很多。有些問題可以通過技術(shù)解決,有些問題需要根據(jù)具體條件進(jìn)行分析,有些需要盡力規(guī)避,有些需要硬著頭皮強(qiáng)頂硬撐。

    在考慮清楚這些問題可能帶來的各種問題之前,讓軟件開發(fā)慢下來,至少慢一點(diǎn)點(diǎn)也是好的,進(jìn)行下一步驟之前先了解如果出現(xiàn)了問題該如何應(yīng)對(duì),如何解決。

    posted @ 2009-12-25 10:42 臨遠(yuǎn) 閱讀(1820) | 評(píng)論 (4)編輯 收藏

    [譯]Spring 3.0發(fā)布:基于Java 5開發(fā),添加了新的表達(dá)式語言和對(duì)REST的支持

    原文地址:http://www.infoq.com/news/2009/12/spring30

    同志們,Spring框架的3.0版本終于在今天發(fā)布啦。InfoQ特別對(duì)話了Spring框架項(xiàng)目的技術(shù)頭領(lǐng)Juergen Hoeller,從他口中了解到不少關(guān)于這次發(fā)布對(duì)Spring集團(tuán)帶來的改變。

    Hoeller詳細(xì)羅列了Spring 3.0中的各項(xiàng)新特性:

    * 基于Java 5 - 目前核心API已經(jīng)使用了Java 5的特性,諸如泛型、注解等等,因此現(xiàn)在Spring 3.0必須使用Java 5和以后版本才能跑起來。

    * Spring表達(dá)式語言(SpEL) - 這個(gè)和JSF中的統(tǒng)一EL類似,我們可以很容易在Spring 3.0中使用復(fù)雜表達(dá)式了。

    * 提升對(duì)基于注解組件的支持 - Spring JavaConfig其中的一些功能已經(jīng)被遷移到核心框架中,比如@Configuration,@Bean和@DependsOn。

    * 可以使用約束注解聲明對(duì)模型的校驗(yàn)方式 - 提供了對(duì)JSR 303的支持,我們可以使用注解為bean添加諸如@NotNull和@Max(23)的校驗(yàn)規(guī)則。

    * Spring MVC中提供對(duì)REST的綜合支持 - 添加了在服務(wù)器端和客戶端使用RESTful應(yīng)用的功能。

    * 提供對(duì)Java EE 6的支持 - 支持了許多Java EE 6中的功能,比如JPA 2.0和JSF 2.0,讓它們可以運(yùn)行在非EE 6的容器下,比如Tomcat和J2EE 1.4應(yīng)用服務(wù)器。

    * 提供對(duì)JSR 330的支持 - 現(xiàn)在Spring已經(jīng)支持了JSR 330中介紹的javax.inject注解。

    * 基于注解進(jìn)行格式化 - bean的屬性可以使用注解來自動(dòng)進(jìn)行格式化和類型轉(zhuǎn)換,比如@DateFimeFormat(iso=ISO.DATE)和@NumberFormat(style=Style.CURRENCY)。

    Spring還提供了完整的修改日志參考文檔。(譯者注:文檔方面Spring做的確實(shí)太好了,也再次感謝滿江紅團(tuán)隊(duì)的辛勤勞動(dòng)。)

    Hoeller在提到SpEL時(shí),多說了那么幾句:

    SpEL是一種功能強(qiáng)大的表達(dá)式語言,語法基于統(tǒng)一表達(dá)式(Unified EL),實(shí)際上它與JSF中使用的表達(dá)式非常類似。我們特別為SpEL開發(fā)了自己的表達(dá)式解析器以提供特定的功能,無論是在使用bean定義配置還是使用 Spring Integration這類項(xiàng)目時(shí)都可以帶來不少好處。其實(shí)在Spring核心中已經(jīng)有很多地方都應(yīng)用了像"#{...}"這樣的表達(dá)式,可以在XML的 bean定義中看到許多這樣的例子。還有@Value這個(gè)注解,它可以通過名稱動(dòng)態(tài)引用其他的bean,并且可以非常簡(jiǎn)單就獲取這些bean的屬性。

    舉個(gè)例子,下面這段XML配置(來自3.0參考文檔)使用了SpEL來配置bean的屬性,屬性值來自于JVM系統(tǒng)參數(shù):

    <bean class="mycompany.RewardsTestDatabase">
        
    <property name="databaseName"
            value
    ="#{systemProperties.databaseName}"/>

        
    <property name="keyGenerator"
            value
    ="#{strategyBean.databaseKeyGenerator}"/>
    </bean>

    Hoeller也著重介紹了Spring 3.0中對(duì)REST的支持:

    我們面對(duì)的挑戰(zhàn)是在Spring MVC的世界中加入對(duì)REST的支持,把這種強(qiáng)大的新功能交到MVC用戶的手中。我們決定從底層為MVC支持路徑變量的提取 - 這部分內(nèi)容協(xié)商的方向是正確的 - 考慮到Spring MVC的實(shí)力,并把它們拉升到另一種層次,同時(shí)又不會(huì)破壞基本架構(gòu)。工作進(jìn)展的非常順利,可以在已有的Spring MVC應(yīng)用中使用REST的特性。

    我們的重點(diǎn)聚焦在web用戶接口在REST下的轉(zhuǎn)換方式上。下一步呢,在Spring MVC的基礎(chǔ)上實(shí)現(xiàn)基于REST的網(wǎng)絡(luò)服務(wù)(Web Service)也是很有意思的一件事情,特別是OXM(Object/XML Mapping)現(xiàn)在已經(jīng)成為了Spring核心模塊之一,OXM可以和Spring MVC聯(lián)合應(yīng)用。最后,我們提供了RestTemplate類,這是一個(gè)Spring式的模板類,它作為客戶端提供了與面向REST終端服務(wù)器進(jìn)行交互的 更易用的編程方式。

    對(duì)于那些工作在Spring 2.5之上,并且已經(jīng)在代碼中使用了基于注解樣式的同志們,這次升級(jí)的路線將是非常平滑的 - 新功能可以在升級(jí)到3.0之后任意選擇使用,不需要對(duì)基礎(chǔ)架構(gòu)進(jìn)行任何修改。對(duì)于那些還在使用老版本,比如繼承了表單控制器,這些功能在3.0中還是可以 繼續(xù)使用的,只是這些功能都已經(jīng)被標(biāo)記為“被廢棄了”(deprecated)。如果想使用3.0中的新特性,就必須先使用基于注解的@MVC樣式。對(duì)于 Spring 2.0用戶,99%的代碼依然可以正常運(yùn)行,但是對(duì)一些老組件的支持,比如Apache Commons Attributes, WebLogic 8.1 和 WebSphere 5.1,都已經(jīng)被刪除了。

    當(dāng)提起Spring框架的未來計(jì)劃時(shí),Hoeller提到開發(fā)會(huì)受到Spring集團(tuán)中的其他項(xiàng)目的很大影響,比如Spring Integration, Spring Web Flow, Spring Source dm ServerSpring Roo等 等。在3.1的發(fā)布的新特性就會(huì)被Spring Integration 2.0和Spring Web Flow所影響,比如計(jì)劃中的第一類會(huì)話管理(first-class conversation management),擴(kuò)充作用域(scope)和細(xì)化基于注解的組件模型。2010年中旬中的3.1發(fā)布之后,會(huì)進(jìn)入3.2版本,對(duì)于3.2版本的具 體計(jì)劃還沒有最終完成。

    posted @ 2009-12-18 07:49 臨遠(yuǎn) 閱讀(1778) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 免费无遮挡无码永久视频| **aaaaa毛片免费同男同女| 57pao一国产成视频永久免费| 在线播放免费播放av片| 久久亚洲中文字幕精品一区| 国产成人精品亚洲日本在线| 国产黄在线播放免费观看| 美女视频黄的全免费视频网站| 亚洲第一页日韩专区| 亚洲日本在线观看网址| 黄色免费网站在线看| 亚洲天堂免费在线| 中文字幕不卡亚洲| 亚洲youwu永久无码精品| 99国产精品免费视频观看| 深夜国产福利99亚洲视频| 亚洲天堂电影在线观看| 九九99热免费最新版| 狼友av永久网站免费观看| 老色鬼久久亚洲AV综合| 一区二区三区免费看| 久久不见久久见中文字幕免费| 国产精一品亚洲二区在线播放| 99亚洲乱人伦aⅴ精品| 91成年人免费视频| 亚洲国产精品无码久久一线| 国产成人亚洲午夜电影| 又粗又大又黑又长的免费视频| 亚洲av综合色区| 一级中文字幕乱码免费| 日韩a在线观看免费观看| 亚洲成无码人在线观看| 在线人成免费视频69国产| 亚洲国产人成中文幕一级二级| 亚洲三级在线播放| 国产精品免费福利久久| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲国产熟亚洲女视频| 久久久久国色av免费看| 不卡一卡二卡三亚洲| 日日摸日日碰夜夜爽亚洲|