我对Struts2和Spring有一定的了解。我想开发一个管理多家公司信息的应用程序。我对我的应用程序最适合的技术感到困惑。例如:Struts2和Spring的Hibernate MVC。 有人可以帮我选择合适的技术吗?
答案 0 :(得分:12)
以下是您可以使用的J2EE堆栈的快速细分:
将Struts2用于控制器层
将Hibernate用于数据抽象层。为DAO创建服务接口。如果需要,接口将允许您稍后使用某种类型的RMI进行服务,这意味着这些服务可以在不同于Web应用程序的计算机上运行。具体类实现这些接口。这些类将包含业务逻辑和数据验证,并将包装Hibernate会话。 Hibernate会话用于读/写数据库。使用Hibernate annotations加快Hibernate bean的实现。
使用Spring实例化您的服务类和Struts2操作。配置Spring以将服务实例注入Struts2操作。这称为dependency injection。参考接口,而不是Struts2动作的DI的setter方法中的类。
在JSP中使用Struts2标记库或JSTL,它将是您的视图层。
使用Maven进行构建和部署。
使用mod_jk运行Apache,并使用Tomcat作为servlet容器。 mod_jk运行Apache进程,并将请求传递给生活在JVM中的Tomcat servlet容器。
如果您的应用程序需要搜索功能,请使用SOLR,一个基于Lucene构建的REST服务。
您也可以查看Apache Wicket,而不是使用Struts2。
答案 1 :(得分:7)
几天前我有同样的问题,以下是我用来做决定的链接 - 我选择了Spring MVC。如果您重新开始,请查看Spring ROO。
最终选择将基于您的需求 - 但上面的链接讨论了在选择之前应该考虑哪些参数。
希望有所帮助。
答案 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的注释管理事务。