Java企业应用程序项目结构

时间:2012-03-01 03:21:31

标签: java-ee

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

由于我是Java EE技术的新手,我想知道我需要创建哪种文件夹结构,遵循行业惯例,并且易于部署。

我对这个问题进行了一些研究,大多数的oracle例子都说明了:

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

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

以下是一些问题:

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

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

2 个答案:

答案 0 :(得分:6)

如果您说要避免使用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),可以立即使用。因此,您不一定要自己添加。

答案 1 :(得分:0)

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

我们的Aem的Src文件夹(ATOCONN企业管理)产品

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