CDI的概念理解不良徐某

概念(是什么):是JavaEE6标准中一个规范,

作用(干什么):它提供了JavaEE平台上服务注入的组件管理核心,简化应该是CDI的目标,让一切都可以被注解被注入。

和之前接触过的IOC/ID有什么不同

(1)、将依赖注入IOC/DI上升到容器级别,

(2)、概念和我们之前在DCI架构中讨论的业务场景不一样,

包含有容器技术架构场景的意思,场景包括四种:

1、request(event),

importjavax.inject.Named;@NamedpublicclassMessageServerBean{publicStringgetMessage(){return"HelloWorld!";}}

CDI还提供了@Decorator和@Interceptor,这涉及AOP和动态组件的概念。此处不做深入描述

@Named("itemProcessor")@RequestScoped//表示生命周期是request,每次request请求结束,生命就终止,也可以有Session或Application等publicclassItemProcessor{@InjectprivateItemDaoitemDao;//表示ItemDao(业务类)需要被注入//@ANY修饰符//为了提供完全松耦合的应用,我们通常把接口注入到受管理的资源中。//当我们有多个实现了给定接口的bean时该怎么办呢?//我们可以同时使用@Any修饰符和CDI的Instance接口,来把所有该接口的实现bean都注入进一个受管理的bean中:@InjectpublicvoidlistServiceImplementations(@AnyInstanceserviceList){for(Serviceservice:serviceList){System.out.println(service.getClass().getCanonicalName());}}...}

CDI这种事件模式还是组件(userEvent)驱动领域模型(user),不同于JF是领域模型自身发出事件,这两者还是有本质区别,更加突出领域模型作为业务核心的重要位置,而JavaEE6为了强调其技术架构的重要位置,免不了和业务争夺核心位置,这是我们使用者必须注意的,不能死读标准。

生产者方法的参数也可以经由CDI容器进行注入。请查看JavaEECDIProducermethodstutorial.

CDI创建代理是通过继承原来bean的类,并重写所有非私有方法。一个简单的典型的代理的例子可以像下面这样:

当一个Session范围的bean被注入application范围作用域由于application范围内的bean是共享到整个项目中的如果多个客户

同时访问这个application里面被注入的这个session范围内的bean的话很有可能会造成A用户访问的应该是B用户Session范围bean

的内容、为了处理这种问题CDI创造了代理并把代理注进注入点,由代理负责对应被注入的bean的调用

如下场景代码简单示例为:

@SessionScopedpublicclassService{publicvoiddoWork(){System.out.println("Working...");}}//在application范围内注入了session范围内的bean就造成了我上述的情况@ApplicationScopedpublicclassSomeBean{@InjectprivateServiceservice;//这个注入是存在问题的publicvoidtest(){service.doWork();}}

CDI代理示例

//交给CDI进行代理并重写所有service非私有方法然后以避免此问题发生publicclassService$Proxy$_$$_WeldClientProxyextendsService{@OverridepublicvoiddoWork(){Serviceinstance=//...resolvebeaninstanceinstance.doWork();}}

由于CDI代理通过继承bean的类来创建,所以当我们讨论非依赖性bean范围的时候,你应当明白CDI有如下一些限制:

THE END
1.网页布局完全指南从入门到实践一、网页布局基础概念 1.1 什么是网页布局 网页布局是指安排和组织网页上各个元素的位置和展示方式,包括导航栏、页头、内容区、侧边栏和页脚等部分。一个好的网页布局能让网站内容清晰易读,用户体验良好。 1.2 布局之前的准备 在开始布局之前,我们需要: https://htmlpage.cn/about-html/complete-guide-to-web-layout-from-getting-started-to-practice.html
2.WEB入门一网页设计基础腾讯云开发者社区在HTML 网页文档中可以使用“<!--注释 -->”加入页面注释,注释内容将被浏览器忽略。HTML注释可以用于解释文档中某些内容的作用或功能。除此之外,还可以屏蔽部分暂不需要的HTML语句。 ?示例1.3? 注释的用法 <!-- 这里是HTML注释,将不会显示在浏览器的窗口中 --> 这是网页的主体部分 示例1.3在浏览器的https://cloud.tencent.com/developer/article/2477961
3.返回首页一、什么是返回首页? 返回首页,并不是一个复杂的概念。它实际上是一种操作方式,通过点击一个按钮或者链接,快速返回到网站的起始页面。在许多网站中,首页都是最常用的页面之一,它集合了网站的主要信息和功能,因此快速返回首页就显得尤为重要。 二、为什么需要返回首页? https://www.580dns.com/knowledgebaseview?id=7836
4.H5通俗说法深度解析用户体验小黄狮H5作为网页前端开发的核心技术之一,具有广泛的应用和重要的价值,通过本文的通俗说法解析,希望能让更多人了解H5,为未来的互联网发展贡献力量,随着技术的不断进步和需求的日益增长,H5将会在更多的领域得到应用和发展,无论是响应式布局、移动互联网还是交互式应用,H5都将发挥重要作用,学习并掌握H5技术对于个人和企业的未来https://vvrcloud.com/post/25399.html
5.壹生资讯虽然在研究因果关系方面,随机对照试验高于队列研究,但是由于伦理的限制,随机对照试验不能用来研究疾病的危险因素,也就是说,研究者不能按照自己的意愿,给研究对象施加对健康可能有害的因素,如可疑的危险因素。因此,随机对照试验只能用来检验对健康有益的因素或措施(如可能有益的治疗、预防措施)对人体的作用。 https://www.cmtopdr.com/post/detail/e861a814-2ad9-4176-8a38-f2a5982707ff
6.自考马克思主义基本原理概论必备要点总结意识统一于物质:意识的起源,本质,作用等方面解释物质对意识的决定作用和统一作用。 人类社会统一于物质: 物质资料的生产方式是人类社会存在和发展的基础。实践性是本质,社会统一于物质。人类社会是物质世界的组成部分,物质性活动,物质生产方式。 物质统一性原理的意义: 它是马克思主义的基石,有助于树立唯物主义世界观,https://www.eol.cn/baokao/zk-wyw/2023071595748.html
7.中华人民共和国密码法–云南城市建设职业学院密码安全教育是密码工作的重要组成部分,对密码工作高质量发展起着重要的导向和促进作用。做好密码安全教育工作,对于正确贯彻中央关于密码工作的方针政策,提高全民密码安全意识,引导全社会合规、正确、有效使用密码,确保密码使用优质高效、确保密码管理安全可靠,具有重要意义。https://www.yncjxy.com/baoweichu/falufagui/20964/
8.网络专线是什么意思(解析网络专线和宽带的作用)接入速率和带宽是不一样的概念 “接入速率” 是指 “接入线路” 能够达到的速率,就是这条路上的最高限速,比如一般高速公路限速为120KM/H。一般而言,接入速率越高,上网等待的时间越短,用户感受越好。 “带宽” 代表通信线路传送数据的能力。“带宽” 好比公路系统中道路的宽度,提升带宽就相当于把道路拓宽,这样车https://www.niaogebiji.com/article-135791-1.html
9.value在excel中的意思1. value的基本概念和作用 在Excel中,value是指存储在单元格中的实际数值或内容。这些数值可以是数字、日期、时间、文本等不同类型的数据。value的存在使得Excel可以进行各种数值计算和数据分析,提供了强大的数据处理能力。无论是简单的加减乘除,还是复杂的统计分析,都需要正确地理解和使用value。 https://www.dongrv.com/a/91159/
10.淘宝仅退款条件有哪些一、关于淘宝仅退款的概念和作用 当交易出现问题时,买家可以选择仅退款的方式来解决,无需退回商品。与“退货退款”相比,仅退款更为便捷,适用于某些特定情况,例如商品有轻微瑕疵或订单金额存在差错等。仅退款的目的在于降低双方之间的纠纷和成本,并同时保障消费者的权益,使其能够在某些情况下迅速获得资金返还。 https://www.jianshu.com/p/21f91c2d0b16
11.玉髓是什么玉髓和玉的区别玉髓的功效与作用总结:由上可见玉髓并不属于“玉”,只是属于“玉石”类的一种。“玉石”的概念范围要比“玉”大得多,所以大家千万不要混淆这个概念。 玉髓的功效与作用 玉髓根据类型可以分为红玉髓、蓝玉髓、血玉髓,以及绿玉髓、黑玉髓等等。根据玉髓类型的不一样,进而玉髓的功效与作用也是不一样的。因此下面根据玉髓的不同种类https://m.qizuang.com/baike/14474.html
12.我的美篇2017年3月26日,我和我们万婴的女神——周隽老师一起踏上了"海森高主动学习区角游戏高研班"的学习之旅。和大家分享此次学习不一样的收获: "主动学习"——以游戏为主的活动形式 一、打破传统教室的概念 传统教室: 传统教室的区域一般会划分为:语言区,益智区,美工区,角色区……每个区域会限制幼儿人数。区域之间https://www.meipian.cn/g26u4x3
13.月光博客月光博客,是专注于业界、互联网、搜索引擎优化、社会化网络、IT技术、谷歌地图、建站、软件等领域的原创IT科技博客,作者龙威廉。http://www.williamlong.info/
14.ASP.NETCore适用于.NET的开源Web框架这本免费电子书向 ASP.NET Web Forms开发人员介绍了 Blazor。它与 ASP.NET Web Forms 中的类似概念并行引入了 Blazor 概念。 下载PDF 在Web 上查看 ASP.NET Core architecture e-book 本指南提供有关使用 ASP.NET Core 和 Azure 构建整体 Web 应用程序的端到端指南。 https://asp.net/