WEB开发网
开发学院软件开发Java 创建并扩展Apache Wicket Web应用 阅读

创建并扩展Apache Wicket Web应用

 2010-06-30 00:00:00 来源:WEB开发网   
核心提示: 替换组件 用Maven的WAR插件替换类、配置或其他资源听起来是个很糟糕的主意,在大多数情况下也的确如此,创建并扩展Apache Wicket Web应用(6),不过在个别情况下也没有更为简单的选择,如果我们快速检索一遍Wicket Web应用的源代码,这种情况需要这样使用,要想了解它在实际中是

替换组件

用Maven的WAR插件替换类、配置或其他资源听起来是个很糟糕的主意。在大多数情况下也的确如此。不过在个别情况下也没有更为简单的选择。如果我们快速检索一遍Wicket Web应用的源代码,就会发现大部分Wicket组件都是用new关键字实例化的。这种技术很常见,也被视为标准做法。那我们如何在派生项目里修改这些类的行为呢?你的第一反应也许是利用Spring的IoC容器把组件注入到特定的Web页面,尝试使用IoC容器内置的Bean替换机制。这听起来不错,但我们在Wicket-Spring集成项目的Wiki页面上看到,“借助IoC容器注入依赖产生的问题,大部分是因为Wicket是一个非托管的框架,而且Wicket组件和模型往往会被序列化”。简言之,就是Wicket不会管理组件的生命周期,而序列化则可能导致一些严重的问题,比如在集群中。即便我们找到了该问题的解决方法,那XHTML标记文件又怎么办呢?每个模板文件都关联到一个特定的Java类文件。举例来说,/com/example /modular/pages/WarsawPage.html绑定到com.example.modular.pages.WarsawPage类。要解决这个问题,我们还需要一种机制来妥善处理这些关联。比如说,该机制要能动态替换、实例化类,还可以与负责绑定标记文件的Wicket机制交互。这种机制可以单独拿出来开篇讲述,这里先略过。

我们看到,这个问题的确让应用的扩展变得复杂起来。正如我在文章开头写的,我们可以试试maven-war-plugin的缺省重写功能,不要经常修改基项目。

Global项目中,maven-war-plugin重写了Warsaw项目的文件,而没有任何确认对话框或警告信息。这是插件的缺省设置,这种情况需要这样使用。要想了解它在实际中是如何工作的,请看附带的示例应用代码。

回到Spring

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:创建 扩展 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接