【发布时间】:2010-11-09 09:10:29
【问题描述】:
对于 Java 中的模块化开发,您有什么建议。 OSGI 很棒,但它对 JPA 的支持很差。我真的不想再编写另一个框架,但这似乎是不可避免的。
【问题讨论】:
标签: java components module
对于 Java 中的模块化开发,您有什么建议。 OSGI 很棒,但它对 JPA 的支持很差。我真的不想再编写另一个框架,但这似乎是不可避免的。
【问题讨论】:
标签: java components module
模块化开发的最佳方法:先思考,后编码,经常重构。世界上没有可以替代思考的框架/库。
【讨论】:
想一想您想要实现的目标,并尽可能让概念与技术脱节。然后尝试寻找适合您想要实现的目标的技术。如果没有一套技术/工具/框架可以满足您的需求,请重新思考并在中间的某个位置找到满足概念和实施的位置。
【讨论】:
我不认为问题在于 OSGI 对 JPA 缺乏支持,而是在 JPA 实现中缺乏对 OSGI 类加载器的支持。反正我跑题了。
您可能会成功使用带有 OSGI 的 OpenJPA。最新版本已打包为 OSGI 包。我还留下了这个link,它解释了如何让 OpenJPA 在 Apache Felix 中工作。
【讨论】:
我猜OSGi是当今Java EE的主流。构建模块化应用程序是正确的选择。是的,在平台成熟度和接受度方面存在一些问题,但看看社区的努力和意愿(例如 SpringSource、Eclipse)会使其变得更好。这些实现是开源的,许多 IDE 支持 OSGi 开发。我建议采用其中一种 OSGi 实现,而不是开发自己的框架,即使现在存在这些限制。
【讨论】:
您的问题的答案在很大程度上取决于您正在构建的应用程序。 Java EE、ESB 和 OSGi 都是针对某些问题的合适的模块化部署策略。
构建面向企业服务的软件与可插拔客户端应用程序是非常不同的应用程序,具有不同的解决方案。
我目前从事一个项目,该项目将 Java EE 部署的服务用于后端以及使用这些服务的基于 Eclipse/OSGi 的富客户端。后端服务(Java EE)、基于客户端的服务(纯 OSGi)和 UI 组件(Eclipse 插件)之间的设计和部署非常模块化。
使用任何这些技术要克服的最大因素是了解它们的工作原理并适当地设计您的应用程序以使其在其限制范围内工作。正如已经提到的,类加载对于这些环境中的任何复杂应用程序都是一个非常一致的问题,但是预先了解这些问题将使软件能够针对该技术进行适当的设计。
使用 Spring 等框架在编写代码以减少对底层技术的依赖方面大有帮助,但仍然能够利用其独特的功能。
【讨论】: