焊接3.0.0.Alpha4被释放 ,而我一直坐在在DevConf.CZ一间会议室。 Jozef Hartinger( @jozefhartinger )或多或少地在几分钟前告诉我有关此最新版本的新功能的信息。 有一个特别的功能真正引起了我的注意,它是新的焊接探针机制。
什么是焊接?
Weld是CDI的参考实现:Java EE平台的上下文和依赖注入,这是用于依赖注入和上下文生命周期管理的Java标准,并且是Java EE平台最重要和最受欢迎的部分之一。
Weld已集成到许多Java EE应用服务器中,例如WildFly,JBoss企业应用平台,GlassFish,Oracle WebLogic等。 Weld也可以在仅Servlet的环境(Tomcat,Jetty)或纯Java SE环境中使用。
Weld 3.x标记了将在Java EE 8中包含的下一个CDI 2.0版本的第一个实验阶段的版本。您可能已经猜到,没有预先配置服务器并可以运行任何即将到来的Java EE。无论处于哪个阶段,都需要8个RI。“特殊焊接”技术已经领先于人群,并且最近开始尝试甚至没有指定的功能。 为了不影响WildFly 9团队的改进,最新版本尚未包括在内。
使用Weld 3.0.0.Alpha4进行CDI 2.0的试驾
为了今天测试Weld,您需要WildFly 8.2的稳定版本并进行相应的修补。 如果您想使用最新的WildFly 9,也有相应的补丁程序 。 我们去下载最新的WildFly 8.2.0.Final,并将其解压缩到您选择的位置。 我们需要的下一个下载是WildFly 8.2的Weld 3 Alpha4补丁 。 可以通过WildFly内置补丁机制来应用补丁:
$>/WildFly/bin/jboss-cli.bat|sh --command="patch apply /path/to/wildfly-8.2.0.Final-weld-3.0.0.Alph4-patch.zip"
成功的结果应如下所示:
{"outcome" : "success","result" : {}
}
现在您已经准备好开始WildFly。 请记住,这不是官方补丁! 因此,现在考虑这是一种更新Weld版本的简便方法。 而已。 如果您想了解有关修补WildFly的更多信息,请参阅Arun的有关修补的博客文章 。
$>/WildFly/bin/standalone.bat|sh
现在是时候尝试一下了。 值得关注的一个好地方是GitHub上的Java EE 8示例项目 。 仍处于起步阶段,但至少有一个新的CDI 2.0示例可以立即使用。 但是我正在向您展示Weld的另一个新功能,即新的Weld-Probe机制。 因此,我们首先需要一些Web应用程序。 Github上的weld / core / master分支中有几个示例。 其中之一是著名的数字猜想例子 。
Weld-Probe回答您所有的CDI问题
为什么我的领域没有注入? 为什么没有触发我的拦截器? 第三方库注册了哪些扩展? 您是否曾经问过类似的问题? 使Weld开发人员更友好并对故障排除有所帮助是新3.x版本的主要目标之一。 今天,我向您介绍一种名为“焊接探针”的新工具。 Probe是一个内置工具,可提供有关CDI应用程序内部的详细视图。 Weld Probe具有Web UI,并且是开箱即用的。
Probe使您可以轻松检查以下CDI方面。 未来还有更多计划。
- bean,它们的属性,例如限定词,构造型和名称
- Bean依赖关系图
- 豆类宣布的观察员和生产者
- 绑定到bean的拦截器和装饰器
- 扩展名
- 有关当前上下文实例的信息
- 跟踪调用和调用树
Probe并不是要替换调试器或探查器之类的工具。 它更多地是关于了解应用程序并提供有关内部工作原理的高级视图。
探针由REST API和默认(单页应用程序)客户端组成。 因此,它仅在Web应用程序中可用。 您只需通过添加servlet初始化参数org.jboss.weld.development并将其设置为true即可为开发建议明确启用它:
<context-param> <param-name>org.jboss.weld.development</param-name> <param-value>true</param-value> </context-param>
开始,构建示例并部署它。 现在,您可以看到数字猜测示例的工作。 但是还有更多。 只需稍微更改应用程序的URL并在上下文末尾添加“ / weld-probe”即可:http:// localhost:8080 / weld-numberguess / weld-probe,您将看到以下内容:
查看顶部导航可为您提供以下区域:
豆档案
初始视图显示了应用程序中的所有bean归档。 您可以决定隐藏外部档案,可访问性图为您提供了非常有用的概述,用于复杂的部署。
组态
可以通过属性集为每个应用程序配置焊接。 焊接配置属性及其最终值的概述(完整参考焊接配置 )。
豆子
该视图显示了Weld知道的所有咖啡豆。 请注意,还显示了内置的bean和其他集成的Java EE规范(例如,对于JSR 352:Java平台的批处理应用程序)。 有多种过滤器可以找到您感兴趣的bean。bean的详细信息显示所有重要的属性,声明的观察者和生产者,为生产者声明bean以及依赖项和依赖项。
观察者方法
发现所有已注册的观察者方法,甚至包括在扩展中声明的方法或其他Java EE规范中的方法。
语境
该视图使您可以在应用程序和会话上下文中检查Bean实例。
调用树
最后,调用树显示给定入口点内的所有调用。 入口点是监视器在某个线程中捕获的第一个业务方法调用。
就是这样 如果您缺少任何内容或希望对现有功能发表评论,请随时在Weld JIRA中提出问题。 请记住,这仍在进行中,并且会随着每个新版本的更改和增强。
CDI 2.0想要您!
但这还不是全部! CDI 2.0需要您的帮助和投入。 您可以通过多种方式做出贡献,规范负责人Antoine撰写了一篇很棒的博客文章,介绍了您可以做什么以及如何参与 。 也可以随时与Weld社区联系并提供您的反馈。
翻译自: https://www.javacodegeeks.com/2015/02/playing-weld-probe-see-cdi-aspects-one-place.html