2012-03-01 52 views
3

我想用Eclipse创建一个Java Web应用程序,而我的Web服务器是Weblogic-12c。Java企业应用程序项目结构

由于我不熟悉Java EE技术,因此我想找出需要创建的文件夹结构,并遵循行业惯例并易于部署。

我做了对这一问题的研究很少,而且大部分的Oracle实例状态的:

  • 创建Web应用程序项目(WAR)
  • Cretae EJB项目(EJB JAR) - 为业务逻辑
  • 创建ENTERPRICE项目(EAR) - 它关系到上述两个项目为一个

不过,我想避免的EJB层,但仍想保持我的业务逻辑的分隔符e项目。那么我应该在Eclipse中创建什么类型的项目来保存我的业务逻辑类?

下面是几个问题:

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

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

回答

6

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

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

如果您的意思是您希望将纯Java类用于您的业务逻辑而不是EJB,那么您可能需要考虑两次。特别是在使用数据库(JPA)时,EJB需要你做很多事情。在现代Java EE中,它们绝对不是你应该积极寻求避免的事情。在大多数情况下,EJB bean与普通的Java类一样简单。你只添加一个注释(大多是@Stateless),就是这样。

如果您想要两个项目都具有相同的库,那么EAR/lib是默认机制。你放在那里的每个jar都可以用于Web项目和EJB项目。另外,如果您使用的是Weblogic-12c,请注意它已经附带了一个非常好的MVC框架(JSF 2),可以立即使用它。因此你不一定要自己添加这个。

+2

'在现代Java EE中,它们绝对不是你应该主动寻求避免的东西。“对。在Sainy-Petersburg举办的最后一次JavaDay会议上,有人说,改进EJB的唯一办法就是改变它的名字:) – jFrenetic 2012-03-03 10:13:05

+3

基本上:P自从EJB2的'heydays'以来已经有7年多了,但是我猜想人们心中的痛苦,震惊和恐惧仍然是新鲜的。 EJB3是一种不同的方法,越来越多的人认为它需要更名。也许*如果* EJB3将被表示为一组CDI注释(可能围绕Java EE 8时间范围),则该名称也会消失。 – 2012-03-03 10:23:37