Java企业应用程序项目结构

Mri*_*moy 3 java-ee

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

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

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

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

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

以下是一些问题:

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

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

Arj*_*jms 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),可以立即使用.因此,您不一定要自己添加.

  • 基本上:P自从EJB2的'全盛时期'以来已经超过7年了,但我猜想,痛苦,震惊和恐怖在人们的脑海中仍然是新鲜的.EJB3是一种不同的方法,更多人认为它需要更改名称.也许*如果*EJB3将表示为一组CDI注释(可能在Java EE 8时间框架周围),名称也将消失. (3认同)
  • `在现代Java EE中,它们绝对不是你应该积极寻求避免的东西.对.在Sainy-Petersburg的最后一次JavaDay会议上,有人说,改进`EJB`唯一要做的就是更改它的名字:) (2认同)