我正在研究在我的 Java web 应用程序中使用 web 框架。我的基本要求是易于维护、可测试和不重复。
我已经探索过使用某种前端控制器模式和 JSP 的视图编写我自己的 MVC 类型的应用程序。这样做的好处是我可以完全控制我的网络应用程序的所有方面,如果我设计得当,如果我愿意的话,将来将它转移到一个经过更多测试的框架应该不难。然而,缺点是我不得不重新发明轮子。
我听说了有关当前可用 Web 框架的好消息。我一直在研究的一些技术是 Spring、Wicket、Struts、Guice、Hibernate 和 Tapestry。
我对 Tapestry 和 Wicket 有点警惕。我不太了解它们,但它们似乎偏离了 servlet->model jsp->view 公式。我不确定我是否对此感到满意。虽然,我听说 Wicket 实际上最适合 Guice 并且非常可测试。
Spring 似乎很适合,但我对试图做所有事情的框架非常警惕。我很想使用 spring-MVC,但我可以换其他组件吗?例如,我可以在使用 Spring-MVC 作为我的框架的同时使用 Guice 作为我的 DI 引擎吗?
我简要地查看了 Struts,但它似乎对我的需求过于复杂,而且似乎又是一个完整的包。
我从未使用过 Hibernate,但它似乎是 ORM 的标准,如果它类似于 ActiveRecord(我只接触过一点点),我相信它符合我的需要。
我也从未真正使用过 Guice,但人们似乎真的很喜欢它,而且我总体上是 DI 的粉丝,尽管我不确定它是如何在实际应用程序中使用的。
基本上,我只对编写 Servlets/JSP 有信心。我不反对学习替代技术,但我正在寻找关于哪些技术真正使我受益的建议。
如果我可以使用 Servlet 和 JSP 制作 MVC 应用程序,是否值得加入 Spring?还是我应该只使用 Servlets/JSP 并结合像 Guice 这样的 DI 引擎?
我很确定我想将 Hibernate 用于 ORM,但我听说它可能非常复杂。我真正在寻找的只是一种将我的 POJO 映射到数据库的方法,所以如果有更好/更容易使用的东西,我愿意查找它。
我感到迷茫,正在寻找该地区知识渊博的人的一些指导,对任何这些问题的任何意见都将不胜感激。谢谢!