哪些技术最适合我的应用程序:使用Hibernate的Struts或使用Hibernate的Spring

时间:2011-03-05 05:43:01

标签: jsf spring-mvc struts2

我对Struts2和Spring有一定的了解。我想开发一个管理多家公司信息的应用程序。我对我的应用程序最适合的技术感到困惑。例如:Struts2和Spring的Hibernate MVC。 有人可以帮我选择合适的技术吗?

3 个答案:

答案 0 :(得分:12)

以下是您可以使用的J2EE堆栈的快速细分:

  1. 将Struts2用于控制器层

  2. 将Hibernate用于数据抽象层。为DAO创建服务接口。如果需要,接口将允许您稍后使用某种类型的RMI进行服务,这意味着这些服务可以在不同于Web应用程序的计算机上运行。具体类实现这些接口。这些类将包含业务逻辑和数据验证,并将包装Hibernate会话。 Hibernate会话用于读/写数据库。使用Hibernate annotations加快Hibernate bean的实现。

  3. 使用Spring实例化您的服务类和Struts2操作。配置Spring以将服务实例注入Struts2操作。这称为dependency injection。参考接口,而不是Struts2动作的DI的setter方法中的类。

  4. 在JSP中使用Struts2标记库或JSTL,它将是您的视图层。

  5. 使用Maven进行构建和部署。

  6. 使用mod_jk运行Apache,并使用Tomcat作为servlet容器。 mod_jk运行Apache进程,并将请求传递给生活在JVM中的Tomcat servlet容器。

  7. 如果您的应用程序需要搜索功能,请使用SOLR,一个基于Lucene构建的REST服务。

  8. 您也可以查看Apache Wicket,而不是使用Struts2。

答案 1 :(得分:7)

几天前我有同样的问题,以下是我用来做决定的链接 - 我选择了Spring MVC。如果您重新开始,请查看Spring ROO

  1. Choosing the right web framework
  2. Comparing web frameworks
  3. What Web Application Framework?
  4. 最终选择将基于您的需求 - 但上面的链接讨论了在选择之前应该考虑哪些参数。

    希望有所帮助。

答案 2 :(得分:0)

同意@Simian,并添加一些评论和理由。

从技术角度来看,您应该使用任何利用现代和成熟技术的框架,例如Struts 2,Spring MVC,Hibernate,JSF等。

但是,从业务角度来看,您应该更加重视项目所包含的业务模型,并且对框架的​​需求易于实施且快速实施,以及强大且易于维护。

因此,您熟悉Struts 2和Spring,我建议:

1,使用Struts 2作为项目的MVC框架,但如果需要,可以使用AJAX。您还可以开发拦截器以满足项目的一些常见要求。 (或者,如果你有时间,你可以学习Spring MVC,因为它适用于Spring框架,并且更好地支持AJAX和RESTful。不建议使用JSF,不是因为它不是一个极好的框架,而是它使用了一套与Struts 2和Spring MVC相比,完全不同的概念,并且不熟练的人很难调试)

2,只需使用Spring jdbcTemplate作为数据层,使用DAO模式进行解耦。 (或者,如果你有时间,你可以学习Hibernate或JPA作为你的ORM框架。)

3,使用Spring IoC管理对象并与Struts 2和Hibernate集成,并使用Spring的注释管理事务。