Java EE CDI限定词:快速浏览

在上下文和依赖注入(CDI)中, 限定符类型安全松散耦合的主体。 为什么? 没有CDI,我们将以类似于下面的方式注入Java EE组件

注意:这实际上不会编译,只是假设的代码片段



例子1

cdi1

例子2

cdi2

上述实现有什么问题?

  • 不是安全类型 –使用String来指定实现类的完全限定名称(请参见示例1
  • 将BasicCustomerPortal类与BasicService类紧密耦合 (请参见示例2

这正是CDI不这样做的原因!

资格赛助推

  • 松耦合 –另一个类中未引入显式类。 相互分离实现
  • 强类型(类型安全) –无需字符串文字即可定义注入属性/元数据

限定词还可以用作

  • 在bean和装饰器之间绑定组件
  • 观察者的事件选择器 (事件使用者)

简化了CDI限定词

简化cdi限定词

简化步骤

  • 创建一个限定词
  • 将限定符应用于不同的实现类
  • 结合使用Qualifiers和@Inject在类中注入适当实现的实例

这不是有关CDI限定词的详细或深入的帖子。 它更多是快速参考。

  • 点击查看源代码

  • 规格页面(CDI 1.2)
  • 官方CDI页面

谢谢阅读!

翻译自: https://www.javacodegeeks.com/2014/04/java-ee-cdi-qualifiers-quick-peek.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 系统光盘刻录教程-光盘怎样刻录?刻录数据光盘用轨道一次写入还是光盘一次写入?...

刻录光盘需要 DVD-RW 的光驱,并且光盘需要 DVD-R 的光盘用于刻录。刻录工具可以使用 https://cn.ultraiso.net/ 来进行刻录。选择软件目录 中 工具 ,选择 刻录光盘映像 即可进行配置: 此时涉及到了光盘写入的方式的选择问题,在网上…

webpack编译时No PostCSS Config的解决方法

1. {loader:"postcss-loader",options: { // 如果没有options这个选项将会报错 No PostCSS Config foundplugins: (loader) > [require(autoprefixer)(), //CSS浏览器兼容]}}2.在项目根目录新建 postcss.config.js文件,并对 postcss进行配置…

c语言库文件是dll还是lib,C语言之静态链接库与动态链接库(2)

我们发现,无论是静态链接库还是动态链接库,最后都有lib文件,那么两者区别是什么呢?其实,两个是完全不一样的东西。静态库对应的lib文件叫静态库,动态库对应的lib文件叫导入库。实际上静态库本身就包含了实际…

NTC3950-10K温度传感器

一、计算公式 补充: B3950 R10K T225度 查RT表,25度对应的是10K 电路:   热敏电阻与上拉电阻R813分压,获取温度与Vo电压的关系,在根据Vo折算出与MCU ADC的数值。 再将ADC代出Rt,即得到ADC与T的关系公式。…

使不安全变得更加安全

总览 如果直接使用Unsafe,则可能会导致JVM崩溃。 当您访问尚未映射的内存页面并且在Unix上的结果是SIGSEG(如果您访问页面0)或SIGBUS(如果您访问另一个未映射的页面)时,就会发生这种情况。 使用MethodHand…

二分搜索树的基本实现

基本操作的动画演示 插入(略) 搜索(略) 删除节点 代码 package com.yunche.datastructure;import java.util.LinkedList; import java.util.Queue;/*** ClassName: BST* Description: 二叉搜索树:每个节点的左子树的值…

js ||

||或位符号 a || b 1.当a ,b 均为true时,return a 2.当 a,b均为false时,return b 3.当a,b为一false一true,return true的那个值 && 与位符号 a&&b 1.当a,b均为true时,return b 2.当,b均为false时&#xff…

计算机c语言二级题型,计算机二级C语言题型和评分标准

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼全国计算机二级考试大题把题目给定程序删除了,正确运行,这样会不会给分?50、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。函数fun中给出的语句仅供…

什么是Mockito Extra接口?

如果要编写轻量级的JUnit测试, Mockito是我最喜欢的小帮手。 如有必要,可以通过模拟轻松地替换被测单元的“实际”依赖关系,这非常有用。 尤其是在处理框架API的边界线时,此类依赖项的设置否则可能非常昂贵。 但是有时候情况要复…

d9900 修改ip 思科dcm_思科设备SSH登陆详细配置过程

思科设备SSH登陆详细配置过程我们用GNS3进行拓扑搭建。实验拓扑图如下:进行完基本配置之后开始配置SSH服务器(R2)1.首先验证设备是否支持SSHR2#show ip ssh能够识别这条命令就说明支持。2.配置IP域名。使用config# ip domain-name domain-name全局配置模式命令配置网…

scrapy框架使用splash渲染引擎爬取动态页面

1.启动docker,在命令行里输入 docker run -p 8050:8050 scrapinghub/splash在docker上运行splash引擎 2.接下来就可以来写爬虫文件了 首先在setting里配置 splash_urlhttp://loaclhost:8050 DUPEFLITERscrapy_splash.SplashAwareDupeFilterDOWNLOADER_MIDDLEWARES …

Testing BlogJet

I have installed an interesting application - BlogJet. Its a cool Windows client for my blog tool (as well as for other tools). Get your copy here: http://blogjet.com"Computers are useless. They can only give you answers." -- Pablo Picasso转载于:…

async,await

function timeout(ms){return new Promise(function(resolve){setTimeout(resolve,ms)}) }async function asyncPrint(value,ms){await timeout(ms);console.log(value) } asyncPrint(hello world,5000) 这段代码是过了5秒再显示hello world await是要等待这句代码执行完&…

Homebrew是什么?怎么关闭自动更新?

Homebrew是MacOS 的软件包管理器。 通过它可以安装、卸载、更新、查看、搜索任何想要安装的软件。如:git, node等。 安装Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 查看Homebrew br…

C语言中case后面有空格吗,C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)...

正常情况下,switch case语句是这么写的:switch(参数){case1:...;break;case2:...;break;default:...break;}这种是我们最常见的写法,当然也可以这么写:switch(参数){case1:case2:case3:case4:...;break;default:...;break;}接下来…

java 把string转为keyevent_盘点现在Java强大第三方库(字符串操作),程序员都该知道!...

1.字符串与集合间的转化引用第三方库 Apache Commons Lang jre连接值得一提的自JDK1.8以后字符串集合转为字符串可以使用String类下的join()方法,但别的数据类型还是要依靠第三方库--对比JDK和第三库代码如下我自己是一名从事了多年开发的java老程序员,这段时间整理…

Redis安装文档

1.前置条件 前置条件:linux已经可以上网,参考:https://www.cnblogs.com/ZenoLiang/p/10201875.html 2.安装redis 2.1依赖包检查 1. yum install cpp -y 2. yum install binutils -y 3. yum install glibc-kernheaders -y 4. yum install…

JDK 8的启发性Javadoc

标准JDK 8 API文档的一个不错的功能之一就是能够查看所有或不同类别的方法,正如我在博客文章JDK 8 Javadoc Tweaked For Methods Listings中所讨论的那样。 尽管这种分类既方便又有用,但是与JDK 8中许多新类和程序包相关联的文本注释无疑更有用&#xff…

我用Mono(1)

我在Mono 0.1就开始关注和试用Mono了。我印象最深的一次是,我在FreeBSD里编译好了Mono(FreeBSD装在VPC里)。我用了同样的算法写了一个CS文件和JAVA文件。然后在虚拟机的FreeBSD的Mono下编译运行,把Java文件在真实机器的Windows XP…

setTimeout(fn,0)

我们都知道setTimeout是一个延迟执行的函数 console.log(1); setTimeout(function(){console.log(2);},1000); console.log(3); 会得到1,3,2 但是 setTimeout(function(){console.log(1);}, 0); console.log(2); 你知道这段代码会执行什么样的效果吗 正…