jboss 发布web_JBoss模块示例–模块化Web应用程序
jboss 發布web
最近,我讀到了為什么沒有標準來開發真正的模塊化Web應用程序? 由Patroklos Papapetrou撰寫( 在Java Code Geeks中也有介紹 )。 受本文的啟發,我決定檢查實際使用的JBoss模塊 。 這篇文章逐步描述了我的實驗。我首先想到了以下目標–使用我自己的JBoss模塊定義的某些服務來創建Web應用程序。 我準備的服務非常簡單。 我將其命名為Echo Service:
package warlock.echo;public interface EchoService {String echo(String param);}并放入另一個名為echo-api的jar文件中。 然后,我實現了該服務:
package warlock.echo.impl;import warlock.echo.EchoService;public class DefaultEchoService implements EchoService {public String echo(String param) {return param;}}并將實現放在新的jar文件中,該文件名為echo-module。 考慮到我的Web應用程序應該只了解服務API,而不是特定的實現,因此,我決定采用使用Java平臺創建可擴展應用程序中介紹的方法-該選擇需要添加到下面的echo模塊jar特殊文件中:META-INF / services / warlock.echo.EchoService,持有服務實現的“指針”(實現類的完全限定名稱)。
此時,我檢索并解壓縮了JBoss Application Server 7 ,進入解壓縮的JBoss,然后進入modules目錄。 在此目錄中,我添加了以下結構:
上面提到了這里可見的兩個jar文件,module.xml文件是我的JBoss Module的定義–名為'warlock.echo',具有以下內容:
<?xml version="1.0" encoding="UTF-8"?><module xmlns="urn:jboss:module:1.0" name="warlock.echo"><resources><resource-root path="echo-module-1.0.0-SNAPSHOT.jar" /><resource-root path="echo-api-1.0.0-SNAPSHOT.jar" /></resources></module>完成JBoss Module定義后,我準備了一個簡單的基于Spring Framework的應用程序(僅在項目編譯期間使用echo-api jar,而根本不使用echo-module jar),僅使用一個Controller:
package warlock;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import warlock.echo.EchoService;@Controller @RequestMapping("/echo.html") public class EchoController {@Autowiredprivate EchoService service;@RequestMapping(method = RequestMethod.GET)@ResponseBodypublic String handleGet() {return service.echo("It workzzzzz!");} }如您所見,Controller將某些字符串的Echo Service調用結果作為響應主體返回。 現在到最重要的部分– Web應用程序中的Echo服務定義:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">...<bean class="org.springframework.beans.factory.serviceloader.ServiceFactoryBean"><property name="serviceType" value="warlock.echo.EchoService" /></bean>...</beans>我知道,有一件事困擾著您:) –如果我們不向Web應用程序添加echo-api和echo-module jar,那么如何找到Echo Service實現呢?
好吧,這就是美麗;)–我們只需要再做一件事– WEB-INF / jboss-deployment-structure.xml文件:
<jboss-deployment-structure><deployment><dependencies><module name="warlock.echo" services="export" /></dependencies></deployment> </jboss-deployment-structure>這樣,我們告訴JBoss,此應用程序取決于'warlock.echo'模塊和此模塊中定義的服務。 其余的就是純JBoss Module魔術;)
甜點講座:
- 帶有JBoss模塊的模塊化Java
- JBoss模塊示例
參考: “ Warlock的想法”博客中的 JCG合作伙伴 Warlock的基于JBoss Modules的模塊化Web應用程序 。
相關文章 :
- OSGi將Maven與Equinox結合使用
- 真正的模塊化Web應用程序:為什么沒有開發標準?
- Java Code Geeks Andygene Web原型
- Java最佳實踐系列
- Java教程和Android教程列表
翻譯自: https://www.javacodegeeks.com/2011/09/jboss-modules-example-modular-web.html
jboss 發布web
總結
以上是生活随笔為你收集整理的jboss 发布web_JBoss模块示例–模块化Web应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 都灵JVM编程语言:使用ANTLR构建高
- 下一篇: 测试并发应用