一位Java EE新手在Weld论坛上发帖,寻求关于如何开始学习EE 6的建议。我决定将我在论坛上的部分回复提升到博客。

那么,我应该从哪里开始学起。Java EE 5和Seam?Java EE 6和Weld?现在有没有关于6和Weld的学习资料?

除非你计划在接下来的2-3个月内将你的系统投入生产,否则你应该开始学习CDIWeld。CDI定义了您将使用的基本基础设施,以使各种类型的Java EE组件协同工作(以及更多)。

您还需要决定使用哪个Web框架。这是大多数人觉得困难的部分。

  • 您可以使用普通的servlet和JSP,在EE 6中它们都包含CDI的即用型集成。然而,大多数人更喜欢使用功能更丰富的工具。但说实话,如果您是Java企业开发的新手,这是一个不错的选择。最新的servlet规范允许您使用注解,这在可用性方面是一个巨大的进步。
  • JSF2作为平台的一部分包含在内,并且与CDI默认集成。许多人发现JSF难以学习。我们相信,对于某些类型的应用程序,最终会得到回报。不幸的是,关于JSF的大多数书籍和文章都使其显得比实际更复杂。特别是,规范写得非常糟糕,不值得阅读(因此我不会链接到它)。查看Weld示例,了解JSF2的真实面貌。
  • 我们推荐的一个选项是 Wicket。Wicket 是一个比 JSF 更容易学习的替代品。Weld 集成了 Wicket。
  • 还有许多其他可能性,包括大约一千个框架,这些框架基本上是 servlet API 的替代品。Struts2 和 Stripes 看起来像是受欢迎的选项。我觉得这些类型的框架并不有趣或性感,但它们通常很容易学习。与 Weld 集成它们应该相对容易。
  • 最后要提到的一个选项是 GWT。GWT 是一个完全不同的家伙,有自己的 Java 到 JavaScript 编译器。它非常适合某些类型的应用。我们很快就会提供 GWT 与 Weld 的集成。

我个人认为,你应该先看看 JSF 和/或 Wicket,除非你确实是这个领域的初学者,在这种情况下,从编写一些简单的 servlet 开始。如果这些选项不能满足你的需求,可以扩大选择范围。

你还需要一个持久化解决方案。对于大多数人来说,编写 EE 6 应用程序意味着使用 JPA2。你可以选择至少三个优秀的实现,包括 我们的实现。你可能会想使用 JPA2 与 Bean Validation 一起使用。

一旦你对 CDI、JPA2 和你决定使用的任何网络框架有了基本的了解,看看 EJB 3.1,以及它提供的更高级的功能,用于集成数据存储和消息传递,以及异步性管理。不幸的是,EJB 规范本身很难阅读,所以你可能需要找到一个好的教程。小心,网上关于 EJB 2 的信息仍然很多。EJB 3.1 是一个相当不同的东西。


回到顶部