|
我想實(shí)現(xiàn)這種理想主義: >只有1個(gè)JSF Bean容器實(shí)現(xiàn),比如只使用Spring或Weld,但不能同時(shí)使用兩者.目前我使用Spring作為后端,所以我更喜歡Spring. 到目前為止,我一直沒有找到最佳組合來實(shí)現(xiàn)這些,因?yàn)閾?jù)我所知,如果我錯(cuò)了,請糾正我: > @ManagedBean不能注入spring服務(wù)? 請分享您的想法和經(jīng)驗(yàn). 謝謝 :-) 更新2011年3月15日 發(fā)現(xiàn)了一個(gè)有趣的page,它描述了如何用Spring替換Jboss Weld作為JSR 299 CDI實(shí)現(xiàn).所以基本上,回答問題2.數(shù)字1也是間接回答的,因?yàn)槲椰F(xiàn)在可以注入彈簧服務(wù). 但仍然存在第三個(gè)問題.如果我能在@Named中使用@ViewScoped和Flash Scope,我會(huì)發(fā)現(xiàn)非常有幫助,比如this article.Flash范圍實(shí)現(xiàn)還有待觀察,但到目前為止最接近的是this page. 希望用jsr 299實(shí)現(xiàn)替換spring的焊接仍然可以讓我使用@ConversationScoped. 現(xiàn)在要測試一下,祝我好運(yùn):-) 2011年3月18日更新 成功地使用Spring 3而不是焊接來執(zhí)行@Named,@ Inject.重要的是在faces-config.xml中設(shè)置el-resolver. AFAIK,Spring 3目前還不支持CDI,所以bye2 @ConversationScoped. 對于范圍界定,我仍然必須使用@Scope(“request”)或@Scope(“session”),但如果我更喜歡@RequestScoped(javax.enterprise.context.RequestScoped)和@SessionScoped,我可以使用橋梁從this article提供. 從this article開始,彈簧的范圍(“視圖”)就像魔術(shù)一樣:-) 但是仍然存在一個(gè)問題,如何在Scope(“view”) – bean之間傳遞對象. 更新 啊……終于完成了…… 所以基本上,我可以不用焊接,但是使用spring,可以使用常見的范圍,包括視圖范圍,dan可以使用flash對象在bean之間傳遞. 缺少的一件事是會(huì)話范圍,這對我來說不是一個(gè)主要問題. 干杯:-) 解決方法: Weld(實(shí)際上,JSR-299 Context and Dependency Injection的reference implementation,也稱為Java EE 6 CDI)在Java EE 6環(huán)境中用于取代Spring的次數(shù)越來越少.我建議使用Java EE 6 CDI而不是Spring.當(dāng)Java EE 6提供相同的功能時(shí),為什么要使用第三方框架? 如果Spring后端確實(shí)無法更改,那么我建議堅(jiān)持使用它,而不是與Java EE 6 CDI注釋混合以避免混淆和維護(hù)頭痛. 來源:http://www./content-4-201851.html |
|
|