J2EE webapp Utilities项目最佳实践

时间:2013-10-25 10:16:46

标签: maven java-ee

我有一个基于Maven的J2EE项目结构

Customer (root pom)
   |
   |------ WebTier (JSF 2/Primefaces)
   |
   |------ BusinessTier (EJB 3.*, interfaces, interface impl)
   |
   |------ PersistenceTier (JPA 2)
   |
   |------ CustomerEar

现在我发现我需要一个新的Java类或类来处理基本例程 我想将这个Utility类放在WebTier下并不是一个好主意,因为也可以从BusinessTier中使用Utilities。 它是创建独立Java项目的“最佳实践”,实现必要的类并将此jar包含在耳中吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下尝试并证明“最佳实践”是很难的,因为这是一个特定于项目的问题。

添加“CommonLibrary”项目或者像WebTier和BusinessTier的依赖项一样,没有任何内在错误。事实上,我现在正在进行的项目几乎就是那个结构(带有一个公共库)。

由于这是一个maven项目,只需确保“CommonLibrary”项目依赖范围在Business / Web / Persistence层中设置为“provided”,并在ear项目中设置为“compile”。

e.g。在WebTier中,依赖性将是:

<dependency>
   <groupID>group.name</groupID>
   <artifactID>common-library</artifactID>
   <scope>provided</scope>
</dependency>

编辑:范围将在Web层中“提供”,因为它将是.war。其他层将是jar,因此范围可以为持久性和业务层“编译”。

答案 1 :(得分:0)

根据我的经验,我建议为实用程序提供单独的项目文件夹,并将其包含在需要的jar中

优点是

  1. 易于维护,因为您需要更改一次代码。

  2. 插件&amp;在您需要时拔掉电源插头。

  3. 你可以将此作为常用并利用 其他项目。
  4. 例如

    apache string util

    http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

    bean util

    http://commons.apache.org/proper/commons-beanutils/