【问题标题】:Java Enterprise Application Project StructureJava企业应用项目结构
【发布时间】:2012-03-01 03:21:30
【问题描述】:

我正在尝试使用 Eclipse 创建 Java Web 应用程序,而我的 Web 服务器是 Weblogic-12c。

由于我是 Java EE 技术的新手,我想了解我需要创建什么样的文件夹结构,符合行业惯例并且易于部署。

我对这个主题做了一些研究,大多数预言机示例都表明:

  • 创建 Web 应用项目 (WAR)
  • 创建一个 EJB 项目(EJB jar) - 用于业务逻辑
  • 创建一个 Enterprice 项目 (EAR) - 将上述两个项目合二为一

但是,我想避免使用 EJB 层,但仍想将我的业务逻辑保留在一个单独的项目中。那么我应该在 Eclipse 中创建什么样的项目来保存我的业务逻辑类呢?

还有几个问题:

  • 我打算使用 Spring 3.1 MVC。我应该在 WEB-INF 文件夹下包含 Spring 框架 JAR,还是应该在项目库中添加引用?

  • 如果我想添加一些库(JAR),这对两个项目都是通用的,(Web-App & Business-Logic)我应该把这些 JAR 放在哪里?

【问题讨论】:

    标签: jakarta-ee


    【解决方案1】:

    当你说你想避免 EJB 层,但仍然把你的业务逻辑放在一个单独的项目中,那么这有点令人困惑。在 Java EE 中,业务逻辑最好用 EJB bean 来表达,如果你想将它们放在一个单独的项目中,那么你描述的结构就是标准的。

    请注意,在 Weblogic-12c(以及每个 Java EE 6 应用服务器)中,您可以简单地将基于 EJB 的业务逻辑放在 WAR 中,例如放在单独的包中。没有需要将它们放在单独的项目中。

    如果您想在业务逻辑中使用纯 Java 类而不是 EJB,那么您可能需要三思而后行。尤其是在使用数据库 (JPA) 时,EJB 可以帮您省去很多杂务。在现代 Java EE 中,它们绝对不是您应该积极避免的事情。在大多数情况下,EJB bean 与普通 Java 类一样易于编程。你只需要添加一个注解(主要是@Stateless)就可以了。

    如果您想拥有两个项目共有的库,那么 EAR/lib 是默认机制。您放在那里的每个 jar 都可用于 Web 项目和 EJB 项目。

    另外,如果您使用的是 Weblogic-12c,请注意它已经附带了一个非常好的 MVC 框架 (JSF 2),可以立即使用。因此,您不必自己添加。

    【讨论】:

    • In modern Java EE, they are definitely not something you should actively seek to avoid. 对。在 Sainy-Petersburg 举行的最后一次 JavaDay 会议上,据说要改进 EJB 唯一剩下要做的就是改名 :)
    • 基本上 :P 距离 EJB2 的“全盛期”已经 7 年多了,但我猜人们的脑海中仍然记忆犹新。 EJB3 是一种如此不同的方法,以至于越来越多的人认为它需要更改名称。或许如果 EJB3 将被表示为一组 CDI 注释(可能在 Java EE 8 时间范围左右),名称也会消失。
    【解决方案2】:

    ATOCONN 的我们通常遵循以下项目结构,用于井架构师产品开发和易于维护。根据您使用的需求和设计模式,项目之间可能会有所不同。

    我们为 aem (ATOCONN ENTERPRISE MANAGEMENT) 产品提供的 Src 文件夹

    com.atoconn.aem.beans // This usually containts all beans
    
    com.atoconn.aem.controllers //All controllers will goes here.
       |com.atoconn.aem.controllers.finance
       |com.atoconn.aem.controllers.projects
       |....
    
    com.atoconn.aem.services // All service layer related thing here.
    
    com.atoconn.aem.dao //All database related classes will goes here
    
    com.atoconn.aem.util // All utility classes here
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多