JBoss Modules是一个相当有趣的项目,他在Jboss应用服务器和Jboss生态系统项目中扮演者重要的角色。但是,网上关于Jboss Modules的东西却很少。甚至Jboss Modules的官方文档都是不完整的,更别提教程了。关于他你能在网上找到的最好的资料也就是介绍如何在Jboss 服务器中应用JBoss Modules。

由于我在网上没有找到一个Jboss Modules的Hello World程序,所以我决定自己写一个。

下载Jboss Modules

在http://www.jboss.org/上,你无法直接找到JBoss Modules。获取Jboss Modules有两种方法,第一种是从 Bintray 或者 Maven 仓库中下载。第二种就是拿到源码之后自己编译。

还有呢,就是下载一个项目,其中包含jboss-modules.jar的也行。比如WildFly。

Hello World

一个古老而又伟大的Hello World代码:

public class Main { public static void main(String[] args) {new Hello().say(); }
}

上面的代码中用到了Hello类,这个类将会包含在另外的模块中:

public class Hello { public void say() { System.out.println("Hello!"); }
}

我们将上面的两个不同的类、编译后的class文件以及jar包放到不同的模块下面。我们使其符合Jboss Modules的规范,大致结构如下图:

如上图所示,Main类在app模块中,Hello类在hello模块中,每个模块还需要一个module.xml文件。关于文件的具体编写规范可以参考module命名规范和module文件可用标签。(JBoss Modules 模块描述文件解析)

app模块中的module.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.5" name="app"> <main-class name="Main"/> <resources> <resource-root path="main.jar"/> </resources> <dependencies> <module name="hello"/> </dependencies>
</module>

它制定了main-class为Main,指定该模块的classpath为main.jar。并且说明该模块依赖了hello模块。

hello模块中的module.xml文件内容和上面类似:

<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.5" name="hello">  <resources> <resource-root path="hello.jar"/> </resources>
</module>

好了!现在我们可以执行新的模块化的“Hello World”应用程序了:

java -jar jboss-modules-1.5.1.Final.jar -mp mods app

控制台输出内容:Hello!

通过java -jar jboss-modules-1.5.1.Final.jar开始运行该程序,通过-mp mods指定要运行的模块的名字。

这个例子不是很实用,但至少它给了我们一些关于如何开始使用JBoss Module的提示。希望,有一天,这个很棒的项目会有完善的文档,会有更多的教程。

from:https://www.hollischuang.com/archives/1825

Hello World With JBoss Modules相关推荐

  1. 使用JBoss Modules来模块化Java

    本文的英文原文Modularized Java with JBoss Modules是JBoss Modules的作者David写的,由HollisChuang翻译在使用JBoss Modules来模 ...

  2. 【Ovirt 笔记】JBoss modules 配置分析与整理

    文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅. 本文仅供学习交流使用,侵权必删. 不用于商业目的,转载请注 ...

  3. JBoss 系列八十五: JBoss Modules 简单介绍

    概述 从JBoss AS7开始,Classloader这块开始使用全新的JBoss Modules.本文简单介绍说明JBoss Modules的设计思路,以及给出一个例子说明这一设计思路. JBoss ...

  4. JBoss Modules – Module name

    模块名是由"."号分割的字符串,它和version slot一起用来在module loader中唯一标志一个模块.一般来说,名称的组成就像包名一样,但在模块名和模块包含的包之间并 ...

  5. JBoss Modules 模块描述文件解析

    jboss的module模块描述文件是一个XML文件,用来描述模块的结构,内容,依赖关系,过滤器,以及其它属性.它的格式是富有表现力的,用于使基于文件系统的模块装载器允许描述文件和模块内容放在一起,而 ...

  6. CAS (10) —— JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法...

    CAS (10) -- JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法 jboss版本: jb ...

  7. jboss7 关闭日志打印_使用自定义日志记录处理程序在JBoss AS 7中跟踪SQL语句

    jboss7 关闭日志打印 使用ORM从您的特定数据库中提取数据并让其创建和发布您必须亲自编写的所有SQL语句似乎很方便. 这就是使ORM解决方案受欢迎的原因. 但是它也有一个缺点:由于ORM为您做了 ...

  8. apache camel_在WildFly中将Apache Camel和Spring添加为jboss模块

    apache camel 这些天,我在玩Wildfly , Apache Camel和Spring . 在EAR / WAR之间进行通信的一种简单方法是使用Camel的direct-vm组件. 有或没 ...

  9. jboss 发布web_JBoss模块示例–模块化Web应用程序

    jboss 发布web 最近,我读到了为什么没有标准来开发真正的模块化Web应用程序? 由Patroklos Papapetrou撰写( 在Java Code Geeks中也有介绍 ). 受本文的启发 ...

最新文章

  1. python tkinter选择路径控件_Python3 Tkinter选择路径功能的实现方法
  2. FPGA之道(55)状态机的HDL模板
  3. 打印出所有的 info.plist 中的 keys、values
  4. 如何系统性的分析一个新idea的可行性?
  5. QT的QLinkedList类的使用
  6. Linux内核defconfig在哪,Linux内核根目录中的配置文件.config中包含了许多宏定义,...
  7. elasticsearch 6.1.1 transport jar
  8. 第八届蓝桥杯省赛真题--纸牌三角形
  9. flutter html 加载_Flutter 加载本地 HTML 文件
  10. [20180801]insert导致死锁.txt
  11. 天刀 服务器状态,12月11日服务器例行维护公告(已完成)
  12. 写完十四章卡农后,莫比乌斯带属实是给巴赫玩明白了
  13. unity汤姆猫自动检测录音,不说话自动播放
  14. Pyton 中eval 函数的用法总结
  15. 磁力云盒,自动静默关注店铺
  16. JS 【详解】作用域
  17. Smoothness 平滑度 Standard Shader系列9
  18. 禅与摩托车维修艺术语录摘抄(1)
  19. (29)pycharm文件操作
  20. 如何利用PCA(Principal component analysis)来简化数据

热门文章

  1. jodd-StringTemplateParser使用
  2. How to allow/block PING on Linux server – IPTables rules for icmp---reference
  3. Android targetSdkVersion详解
  4. Lesson 16.1416.15 GoogLeNet:思想与具体框架GoogLeNet复现
  5. 移动金融业务风控框架及设备风险识别的意义(上)
  6. struct timeval结构体
  7. JavaScript之Set与Map
  8. Redis进阶-核心数据结构进阶实战
  9. CSS基础_Day01
  10. python barrier option pricing_《Python金融数据分析》书内代码实战与讲解(二)金融衍生物定价...