玩Weld-Probe –一站式查看CDI的所有方面

weld_logo_450x 焊接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

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

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

相关文章

排列、组合问题(递归)

这里主要介绍字符串排列组合问题,高中数学常见的题目,不用详细介绍&#xff0c;看例子就可以解决问题 "1212" 全排列结果为 1212&#xff0c;1221&#xff0c;1122&#xff0c;2112&#xff0c;2121&#xff0c;2211 组合结果是 1,2,12 我所理解的排列组合结果是…

oracle日志文件大小规则,修改oracle日志文件大小

1、创建2个新的日志组alter database add logfile group 4 (D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG) size 1024k;alter database add logfile group 5 (D:\ORACLE\ORADATA\ORADB\REDO05_1.LOG) size 1024k;2、切换当前日志到新的日志组alter system switch logfile;alter syste…

Java开发工具可以促进编程!

Java开发人员通常尝试找到快速有效地编写高质量Java代码的方法&#xff0c;以使他们的编程工作更轻松。 由于情况发生了变化&#xff0c;因此出现了越来越多的工具。 因此&#xff0c;下面列出了大多数开发人员已经使用&#xff0c;将来使用或一定会使用的有用工具。 该列表包括…

linux cmake装在自己目录下,如何在Linux下安装cmake

全部展开OpenCV 2.2和更高版本需要使用Cmake生成生成文件&#xff0c;因此需要先安装cmake. 还有其他需要先安装cmake的软件1. 在Linux环境中打开Web浏览器&#xff0c;输入URL:mac cmake gui&#xff0c;找到最新版本的位置. 通常&#xff0c;发布了两个版本的开源软件: “源分…

Java Bootstrap:Dropwizard与Spring Boot

如何在尽可能短的时间内使准备就绪的Java应用程序投入生产&#xff1f; 我不是一个早起的人&#xff0c;所以有时需要一些时间才能启动“所有系统”提示。直到不久之前&#xff0c;这对于Java应用程序来说都是正确的&#xff0c;但是与发明贪睡功能不同闹钟&#xff0c;我们将在…

linux 查看libusb版本,linux / libusb获取usb设备路径

我使用libusb来枚举一些usb设备.现在我想获得“设备路径”.我认为这不是usb device-path,因为我没有成功使用谷歌.如果我用linux连接usb设备,我会在dmesg中收到一条消息,这里有一些带有usb温度传感器的“设备路径”的例子(类似于this)&#xff1a;H_301_3直接到usb端口&#xf…

如何使用Apache Drill分析高度动态的数据集

当今的数据是动态的&#xff0c;并由应用程序驱动。 由诸如Web /社交/移动/ IOT等行业趋势驱动的新业务应用时代的增长正在生成具有新数据类型和新数据模型的数据集。 这些应用程序是迭代的&#xff0c;并且关联的数据模型通常是半结构化的&#xff0c;无模式的且不断发展的。 …

MVC中不能使用原生态的#include ,可替代的解决方案

<!--#include file"../stuff/foo/box.aspx"--> 1.可以用 <%: Html.Partial("~/Views/foo/box.ascx") %>OR <% Html.RenderPartial("~/Views/foo/box.ascx"); %> 2. Html.Raw(File.ReadAllText(Server.MapPath("~/html/te…

linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份

01 前言最近成功从架构组拿到了Gitlab的管理权限&#xff0c;第一件事就是想着如何备份&#xff0c;以防数据丢失背大锅&#xff0c;于是在网上搜索一番&#xff0c;发现一段非常赞的备份脚本&#xff0c;记录照着操作一下&#xff1a;尤其是第二篇文章博主&#xff0c;有非常多…

物理数据模型(PDM)-概念数据模型 (CDM)-面向对象模型 (OOM):适用于已经设计好数据库表结构了。...

步骤如下&#xff1a; 一、反向生成物理数据模型PDM 开发环境 PowerDesigner 15 ,SQL Server2005 &#xff08;1&#xff09;在开始逆向生成PDM图之前&#xff0c;需要为指定的数据库创建ODBC数据源。以Windows xp操作系统为例&#xff0c;选择“开始”/“运行”命令&#xff0…

带有Hibernate OGM的NoSQL –第二部分:查询数据

1月底发布了Hibernate OGM的第一个最终版本之后&#xff0c;团队一直在忙于制作一系列教程式博客&#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 第一部分是关于设置和保留您的第一个实体 。 在第二部分中&#xff0c;您将学习如何查询数据。 Hibernate OGM将使您以几…

Linux下做一个arp欺骗程序6,LINUX下防ARP欺骗攻击

arp欺骗的原理不多述&#xff0c;基本就是利用发送假的arp数据包&#xff0c;冒充网关。一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的&#xff0c;假的arp包就会刷新这个缓存&#xff0c;导致本该发送到网关的数据包发到了欺骗者那里。解决的办法就是静态arp。…

MySQL作为Kubernetes服务,可从WildFly Pod访问

Kubernetes上使用Vagrant的Java EE 7和WildFly&#xff08;技术提示&#xff03;71&#xff09;介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐碎的Java EE 7应用程序。 Java EE 7应用程序是在世界范围内交付的动手实验室 。 它使用与WildFly捆绑在一起的内存数据库…

几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较

几大最短路径算法比较 转自&#xff1a;http://blog.csdn.net/v_july_v/article/details/6181485 几个最短路径算法的比较&#xff1a;Floyd 求多源、无负权边的最短路。用矩阵记录图。时效性较差&#xff0c;时间复杂度O(V^3)。 Floyd-Warshall算法&#xff08;Floyd-W…

linux系统creat函数,Linux系统调用之creat函数

Linux中系统调用很多&#xff0c;但是再多也有几种不变的根本&#xff1a;创建&#xff0c;打开&#xff0c;写&#xff0c;读&#xff0c;关闭&#xff0c;删除&#xff0c;等最最基本的操作&#xff0c;就像人们所常说的&#xff0c;Linux上的一切我们都可以当做文件来处理&a…

防止在多模块Maven中找到“未找到插件”

在多模块Maven项目的子模块上定义Maven插件会给我们“找不到插件”错误。 尤其是如果我们有一个多模块项目&#xff0c;并且只想在一个特定模块中应用Maven插件&#xff0c;则此错误会经常发生。 假设我们有一个看起来像这样的多模块root pom。 <project xmlns"http:…

linux 4412跑程序,荣品4412的板子上跑纯linux

昨天开始突然想在4412上面跑人QT玩&#xff0c;首先得跑个纯linux昨天做好第一步&#xff0c;把根文件系统&#xff0c;用make_ext4fs 打包。make_ext4fs -l 34M -s system.img minifs/然后在uboot启动命令中把启动参数修改&#xff1a;setenv bootargs noinitrd root/dev/mmcb…

ASP.NET MVC 笔记

&#xff08;从今天开始&#xff0c;还是换回默认的代码高亮插件吧。。。话说此篇仅供个人遗忘后查阅&#xff0c;木有详尽解释。。。&#xff09; 1、Controller中的所有Action方法不限制返回值类型&#xff0c;返回值应该至少可以被ToString()&#xff0c;这样最终页面上呈现…

JPA 2.1:不同步的持久性上下文

JPA 2.1版带来了一种新的方式来处理持久性上下文与当前JTA事务以及资源管理器之间的同步。 术语资源管理器来自Java事务处理API &#xff0c;它表示操纵一个资源的组件&#xff08;例如&#xff0c;使用JDBC驱动程序操纵的具体数据库&#xff09;。 默认情况下&#xff0c;容器…

麒麟Linux启动目录,优麒麟目录结构介绍 系统入门必备

对于Linux爱好者来说&#xff0c;深入了解Linux文件目录结构的标准和每个目录的详细功能&#xff0c;对于我们用好Linux系统至关重要&#xff0c;下面就由小编给大家介绍下优麒麟系统的目录结构&#xff0c;PS: 同样适用于其他Linux发行版。查看系统的全部目录&#xff1a;* 在…