问题标签 [java-ee-6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 允许单个 Java 代码库覆盖多个不同版本的方法?
我在一家小商店工作,那里有很多遗留的 Cobol 代码,并且采用了一种方法来让我们尽可能减少分叉和分支。
对于给定的版本,我们有三个级别:
- CORE - 底层,此代码对所有版本通用
- GROUP - 多个客户共有的可选代码。
- 客户 - 特定于单个客户的可选代码。
当需要某个程序时,首先在 CUSTOMER 中搜索,然后在 GROUP 中搜索,最后在 CORE 中搜索。一个给定的应用程序会调用许多程序,这些程序都是按此顺序查找的(想想 Windows 下的 exe 文件和 PATH)。
我们也有 Java 程序与这些遗留代码进行交互,并且由于核心-组-客户查找机制不能轻易地借给 Java,它倾向于在每个客户的 CVS 分支中增长,需要太多的维护。Java 部分和后端部分倾向于并行开发。
我被指派想办法让两个世界相遇。
本质上,我们想要一个 Java 环境,它允许我们拥有一个包含每个版本的源代码的单一代码库,在这里我们可以轻松地选择一个组和一个客户,并为该客户使用应用程序,然后轻松切换到另一个代码集和那个客户。
我正在考虑一个场景,其中每个核心、客户和组都有一个 Eclipse 项目,然后使用项目集来选择给定场景所需的那些。我无法理解的问题是,我们将如何在 CORE 项目中创建健壮的代码,无论选择哪个组和客户,这些代码都将起作用。一个工厂类,它知道调用传递的 Class 对象的哪个子类而不是每个新的?
其他人一定有类似的代码库管理问题。有没有人有经验分享一下?
编辑:上述问题的结论是,CVS 需要替换为更适合同时处理许多分支的源代码管理系统,以及在保留历史记录的同时将源代码从一个组件迁移到另一个组件。受最近 slf4j 和 logback 迁移的启发,我们目前正在研究 git,因为它可以很好地处理分支。我们也考虑过颠覆和善变,但 git 似乎更适合单一位置、多分支的项目。我在另一个问题中询问过 Perforce,但我个人倾向于开源解决方案来解决与此一样重要的问题。
编辑:经过深思熟虑,我们发现我们真正的痛点是我们在 CVS 中使用分支,如果您对所有文件进行分支,CVS 中的分支是最容易使用的!修改后的结论是,我们可以单独使用 CVS 来做到这一点,通过切换到 Java 项目林,每个项目对应于上述一个级别,并使用 Eclipse 构建路径将它们联系在一起,以便每个客户版本都拉入适当的 GROUP和核心项目。我们仍然希望切换到更好的版本控制系统,但这是一个非常重要的决定,所以我们希望尽可能地推迟它。
编辑:我现在使用 Google Guice 2.0 对 CORE-GROUP-CUSTOMER 概念进行了概念验证——@ImplementedBy 标签正是我们所需要的。我想知道其他人是做什么的?到处都在使用 if 吗?
编辑:现在我也需要这个功能用于 Web 应用程序。Guice 在 JSR-330 到位之前一直存在。任何有版本控制经验的人?
编辑:JSR-330/299 现在与基于 JBoss Seam 的 JEE6 参考实现 Weld 一起使用,我已经用 Weld 重新实现了概念验证,并且可以看到如果我们在 bean 中使用 @Alternative 和 ...。 xml 我们可以得到我们想要的行为。即为 CORE 中的给定功能提供新的实现,而无需在 CORE jar 中进行任何更改。对 Servlet 3.0 规范的初步阅读表明它可能支持 Web 应用程序资源(而不是代码)的相同功能。我们现在将对实际应用程序进行初步测试。
java - 如何从 JSF 2.0 Facelets 模板调用 List.size()?
在 JSF 2.0 Facelets 模板中调用 list.size() 的语法是什么(例如,使用 h:outputText 元素)?
java - java 1.6.013 中的@WebServlet 注释支持
我正在步入 Servlets 和 3.0 的世界,我看到了示例和教程中使用的某些方法和注释,这些方法和注释谈到了在 JAVA 6.0 发布时可用(它有),现在当我尝试使用上面的注释例如在 Eclipse 中它无法识别它,尽管我安装了 java 1.6.013 并且在 Eclipse 中它说我正在使用 jre6。当我尝试用谷歌搜索它时,我偶然发现了这个关于 WebServlet Annotation 的页面,它在右上角显示:DRAFT。这意味着什么?1.6.013 是否支持@WebServlet?是我的 Eclipse 的问题吗?
非常感谢任何可以帮助我的人
编辑:我现在明白我弄得有点乱,但是我下载了一个 Servlets 3.0 API 的 Jar,至少对于 @WebServlet 注释有效,但给了我地狱。
java - Spring - 在 Spring 项目中包含本身使用 Spring 的 jar 的方法
我需要在我的项目中使用一些 3rd 方 jar。该项目是一个 Spring 项目,该 jar 也是使用 Spring。
有没有办法可以在我的项目中包含第 3 方 jar?我发现很难找到第三部分 jar 的每一个依赖项并注入它。
java - Spring - 我什么时候应该考虑在同一个 JVM 中加载另一个上下文?
我只是在想,我什么时候应该真正考虑在 Spring 中加载多个应用程序上下文?到目前为止,我一直在合并上下文文件,<include>
以便只加载一个应用程序上下文。
您是否知道何时在同一个 JVM 中使用多个应用程序上下文?
java - Spring - 如何加载新的分层上下文?
有没有人尝试使用 Spring 加载多个分层上下文(父/子)?
您能解释一下如何做到这一点,因为我找不到足够的文档吗?
提前致谢。
java - Spring - Bean 创建中的奇怪错误
知道为什么我会收到此异常吗?
java - Spring - Bean创建中的StackOverflowError
我收到以下错误:
问题是我正在使用其他项目的库,并且该项目的 bean 名称与我的相似,它们似乎发生冲突!
那么,有没有办法为Junit 测试用例单独调出该库的上下文?
java - Spring - 如何解决服务的“多个”AOP 行为?
我想知道我们是否可以将“多种”AOP
行为应用于我们的服务类?
让我们说,我对我的BankServiceImpl
班级这样做:
@Transactional
在方法之一的顶部accountTransfer()
,和<aop>
以及执行另一种方法的一些自定义切入点someOtherMethod()
。
那么 Spring 是否能够生成一个accountTransfer()
可以进行事务处理并someOtherMethod()
具有行为的代理aop
?
有没有人知道 Spring 如何解决多种AOP
行为?
java - Java EE6 优于 EE5?
我们正处于获得Java EE6的边缘(以 Glassfish v3 作为参考实现)。计划于 12 月 9 日发布。虽然仍有相当多的公司正在努力将他们的代码库迁移到 EE5(从早期版本),但我们处于开始开发新产品的豪华环境中,可以选择以 EE6 作为平台进行. 这可能会避免后期的迁移工作,并受益于 EE6 中的所有适当大小的功能。
相反或少数问题(在最前沿做事时,也就是使用 EE6):
- 周围还没有多少专业知识(博客、书籍、论坛、你自己……)
- 很快不会有任何其他 EE6 应用程序服务器(测试版可能在明年年初/年中?)
- 第三方库/框架可能尚未针对 EE6 进行验证或测试。
一个不会导致特定答案的通用问题,但也许您对该主题的看法?
斯文