日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在J2SE应用程序中模拟CDI的会话和请求范围

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在J2SE应用程序中模拟CDI的会话和请求范围 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們目前正在考慮將Naked Objects框架重構為使用JSR-330(依賴注入)和面向EE的老大哥JSR-299(CDI)。 使用香草JSR-330是不費吹灰之力的,但是我們想利用JSR-299中的一些不錯的功能(例如事件和裝飾器)。 障礙? 裸對象還必須在J2SE環境中透明運行。

現在,JSR-299(至少是Weld參考實現)可以在J2SE上運行,但是不可能使用標注為@SessionScoped或@RequestScoped的bean…確實不足為奇,因為沒有HttpSession或HttpServletRequest鉤入。 另一方面,至少在J2SE上下文中的Naked Objects框架中,我們確實能夠將這些概念映射到其自身的內部生命周期中……例如,對于客戶端應用程序,用戶始終被視為正在運行在一個長時間的會議上。

那么,如何為這些作用域設置上下文,并使其在J2SE中運行時自動激活?

首先,讓我們看一下我們要運行的代碼:

package org.nakedobjects.experiments.cdi;import java.util.List; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Observes; import org.jboss.weld.environment.se.bindings.Parameters; import org.jboss.weld.environment.se.events.ContainerInitialized;@RequestScoped public class HelloWorld {public static void main(String[] args) {// bootstraporg.jboss.weld.environment.se.StartMain.main(new String[]{"JSR","299"});}public void printHello(@Observes ContainerInitialized event, @Parameters List<String> args) {System.out.println("Hello " + args);System.out.flush();} }

因為這是CDI bean,所以我們需要一個空的META-INF / beans.xml。

如果將上述類注釋為@ApplicationScoped ,則將打印出“ Hello [JSR,299]”,但不會將其注釋為@RequestScoped 。 因此,我們需要做的是編寫擴展。 這有點hacky,但是可以用:

package org.jboss.weld.manager; // required for visibility to BeanManagerImpl#getContexts()import java.lang.annotation.Annotation;import javax.enterprise.context.RequestScoped; import javax.enterprise.context.SessionScoped; import javax.enterprise.event.Observes; import javax.enterprise.inject.spi.AfterDeploymentValidation; import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension;import org.jboss.weld.context.AbstractThreadLocalMapContext; import org.jboss.weld.context.beanstore.HashMapBeanStore;public class WeldServletScopesSupportForSe implements Extension {public void afterDeployment(@Observes AfterDeploymentValidation event,BeanManager beanManager) {setContextActive(beanManager, SessionScoped.class);setContextActive(beanManager, RequestScoped.class);}private void setContextActive(BeanManager beanManager,Class<? extends Annotation> cls) {BeanManagerImpl beanManagerImpl = (BeanManagerImpl) beanManager;AbstractThreadLocalMapContext context = (AbstractThreadLocalMapContext) beanManagerImpl.getContexts().get(cls).get(0);context.setBeanStore(new HashMapBeanStore());context.setActive(true);} }

像所有Weld擴展一樣,它需要在META-INF / services中注冊,在這種情況下, 包含在包含完整類名的名為javax.enterprise.inject.spi.Extension的文件中。

現在,當我們運行應用程序時,將同時設置會話和請求范圍,并且將觸發我們的HelloWorld bean。

對于在Naked Objects中編寫應用程序的開發人員,如果在非Web后端(例如,具有套接字級遠程處理的-t服務器)上部署客戶端( -t客戶端或服務器),則他們需要包括對其他模塊的依賴。后者,我們將需要包括一些技巧來弄清楚我們是否在Web應用程序中運行,并且僅在我們確定自己不在上下文中時才設置Context(例如,無法在Webapp上找到javax.servlet類)。類路徑。

如果您想嘗試一下代碼,可以使用

svn co https://nakedobjects.svn.sourceforge.net/svnroot/nakedobjects/framework/trunk/experiments .

參考: Dan Haywood博客上的JCG合作伙伴 Dan Haywood在J2SE應用程序中模擬了CDI的會話和請求范圍 。

相關文章 :

  • Spring Singleton,請求,會話Bean和線程安全
  • 什么是CDI,它與@EJB和Spring有什么關系?
  • Java EE6 CDI,命名組件和限定符
  • Java EE6裝飾器:在注入時裝飾類
  • Java EE6事件:JMS的輕量級替代品

翻譯自: https://www.javacodegeeks.com/2012/01/simulating-cdis-session-and-request.html

總結

以上是生活随笔為你收集整理的在J2SE应用程序中模拟CDI的会话和请求范围的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91免费看国产 | 久久久久伊人 | 亚洲黄页网站 | 在线中文字幕观看 | 黄色av观看 | 亚洲你懂得 | 黄色最新网址 | 中国性xxx| 欧美aaaaaaa | 亚洲国产欧美视频 | 欧美一级黄 | 日韩成人免费 | 国产伦理在线 | 日本天堂在线观看 | 国产suv精品一区二区6 | 99成人在线 | 国产精品电影一区 | 欧美老熟妇一区二区 | 国产一区99 | 中文字幕黄色av | 丰满人妻综合一区二区三区 | 国产在成人精品线拍偷自揄拍 | 亚洲欧美综合精品久久成人 | 国产精品自产拍 | 亚洲h| 四虎网站最新网址 | 日韩视频免费观看高清完整版 | 欧美日韩一区二区三区电影 | 天天宗合网 | 欧洲免费毛片 | av2018| 精品一区二区免费看 | 亚洲专区一区二区三区 | 美女屁股网站 | 最新av在线网址 | 日本免费不卡一区二区 | videos另类灌满极品另类 | 黄色网久久 | 麻豆视频在线观看免费 | 国产视频欧美视频 | 精品国产一区二区三区性色 | 性生活av | 欧美xxxx×黑人性爽 | 粗大的内捧猛烈进出 | h部分肌肉警猛淫文 | 久久久久成人网站 | 一级片啪啪 | 日韩精品一区二区三区网站 | 亚洲色图偷 | 熟妇人妻无乱码中文字幕真矢织江 | 欧美亚洲激情 | 精品乱码一区二区三四区视频 | wwwww国产 | 亚洲美女色 | 免费在线视频一区二区 | 啪啪网页 | 中文字幕成人一区 | 白嫩情侣偷拍呻吟刺激 | 麻豆精品在线播放 | 欧美怡红院 | 国产51页 | 毛片网在线 | 三级av毛片 | 天天天天天天操 | 毛片大全免费 | 亚洲精品大全 | 午夜免费网| 国产午夜麻豆影院在线观看 | 好姑娘在线观看高清完整版电影 | 亚洲高清精品视频 | 欧美天堂一区 | 亚洲av无一区二区三区怡春院 | 日韩无马 | 国产精品资源在线观看 | 欧美无遮挡 | 欧美日韩国产区 | 岛国精品在线播放 | www久久精品| 久久一二三区 | 亚洲欧美国产日韩精品 | 日本人极品人妖高潮 | 银杏av | 男女视频免费观看 | 久草中文网| 日一日射一射 | 欧美片网站yy | 好吊妞在线观看 | 黄网站免费大全入口 | 夜夜草视频 | 中文字幕一区二区三区精华液 | 国产人妻人伦精品1国产丝袜 | 国产精品一区二区视频 | 亚洲中文字幕无码一区二区三区 | 女女高潮h冰块play失禁百合 | 日本高清一区二区视频 | 亚洲成人一级片 | 国产精品久久无码一三区 | 日韩欧美网 | 毛片视频在线免费观看 |