一说起传说中的SSH(Struts+Spring+Hibernate)架构,许多人的心里面就没有底。
依照本人来看,所谓的整合没有什么神秘的,只不过就是让三个框架在一起协同的工作,我们做的主要工作就是让其知道彼此的存在,打成“统一战线联盟”以后,再各自为战,互不干扰。
下面就本人知道的一些整合方法一一叙述。
1 Struts+Spring
主要就是让Struts知道Spring的存在,我们可以采用两种办法。
(1) 运用Struts的插件方法,添加struts-congif.xml的<plug-in>节点。
示例代码如下:
xml 代码
- <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
- </plug-in>
上段代码意图很简单:把Struts的配置文件和Spring的配置文件联系起来,这样Struts就知道了Spring的存在。
另外,在web.xml里面需要配置一个Spring的监听器,示例代码如下:
xml 代码
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
第一种方法完毕。
(2) 直接在web.xml里面进行加载。
这种方法与上种方法的不同之处在于Spring的配置文件加载的位置不同,上种方法是在struts-cong.xml中声明,而这种方法是在web.xml里面进行声明,示例代码如下:
xml 代码
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- /WEB-INF/applicationContext-module1.xml,
- /WEB-INF/applicationContext-module2.xml
- </param-value>
- </context-param>
这样我们就实现了第二种方法的SS整合。
问题至于我们还要遇到一个小问题,那就是Struts如何实用Spring的特性?Struts怎么就知道Spring注入的Bean呢?当然,这需要我们进行编程式的声明,众所周知,在Strus的Action里面有一个setServlet方法,我们此时就需要覆盖这个方法,当ActionServlet把请求转发到此Action时,Action就可以实用Spring的特性。
示例代码如下:
java 代码
- import org.springframework.context.ApplicationContext;
- import org.springframework.web.context.support.WebApplicationContextUtils;
-
- public void setServlet(ActionServlet actionServlet) {
- try {
- super.setServlet(actionServlet);
- ServletContext servletContext = actionServlet.getServletContext();
- context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
其中context是ApplicationContext的实例,有了上串代码以后我们就可以以下面的方式进行Spring的特性利用了!
java 代码
- protected IXjdjService getXjdjServiceImp(){
- return (IXjdjService) context.getBean("xjdj");
- }
到此OK,Struts与Spring的整合成功。
2 Spring+Hibernate
可以说Spring与Hibernate的整合是非常完善的,具体要素如下:
在Hibernate中,最重要的无非就是两点,一是配置数据库连接池,二是配置实体类的映射文件。现在我贴出上述两点在Spring里面是怎么配的,配置完毕以后,我们完全可以删除hibernate.cfg.xml文件。示例代码如下:
xml 代码
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName">
- <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
- </property>
- <property name="url">
- <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EXAM</value>
- </property>
- <property name="username">
- <value>sa</value>
- </property>
- <property name="password">
- <value>135780</value>
- </property>
- </bean>
-
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
-
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.SQLServerDialect
- </prop>
- <prop key="hibernate.show_sql">true</prop>
-
- </props>
- </property>
-
- <property name="mappingDirectoryLocations">
- <list>
- <value>
- classpath:/com/wjh/comm/framework/bean
- </value>
-
- </list>
- </property>
- <property name="mappingResources">
- <list>
- <value>com/wjh/example/User.hbm.xml</value>
- </list>
- </property>
- </bean>
OK,到此就完成了Spring+Hibernate的整合,纵观整个过程,我们可以发现一点,那就是所谓的整合就是他们配置文件的融合,只要抓住这一点,再复杂的程序也会变的简单。
网友经常说,我也是这么做的,但是总是不成功。说实在的这个东西理论很简单,但是实际操作起来确实要费一番周折,大家在整合过程中出现了什么问题,不妨贴出来,我们一起讨论讨论!
分享到:
相关推荐
Struts2、Spring和Hibernate是Java Web开发中的三个核心框架,它们共同构成了经典的"SSH"集成解决方案。这个压缩包包含了这三个框架的基础库文件,使得开发者能够快速搭建一个基于MVC模式的、支持事务管理和对象持久...
9. **Struts与其他技术的整合**:如Spring、Hibernate、iBATIS等流行框架的集成,以及AJAX技术的应用,提升应用程序的功能和性能。 10. **最佳实践**:分享开发Struts应用时的经验和建议,帮助开发者避免常见的陷阱...
通过`struts-plugin.xml`,你可以将Spring与Struts2整合,这样Action实例可以从Spring容器中获取,便于依赖注入。例如: ```xml <constant name="struts.objectFactory" value="org.springframework.struts2....
北风网推出的CRM项目除了在业务上的特色之外,还综合了Struts 2+ Spring + Hibernate+ Jfreechart+JQuery+AJAX的技术实现:利用Spring来解耦合,管理依赖,将整个应用进行整合;持久化层采用轻量级的ORM解决方案...
【jsp+struts2权限管理系统】是一个基于Java Web技术实现的权限管理解决方案,它整合了JSP、Struts2框架,以及可能涉及的其他技术,如Spring、Hibernate等,为企业的后台管理和用户权限控制提供了高效、灵活的工具。...
此外,SSH框架(Struts+Spring+Hibernate)的应用进一步提升了系统的开发效率和可维护性。Struts负责控制层,处理HTTP请求;Spring提供依赖注入和事务管理,增强了系统的松耦合性;Hibernate则作为持久层框架,简化...
2. Hibernate集成:Struts与ORM框架如Hibernate配合,方便地进行数据访问和持久化操作。 总结,跃达创新的Struts笔记全面涵盖了Struts框架的核心要素和实际开发中的应用技巧。通过深入学习和实践,开发者可以熟练...
在实际开发中,正确整合并配置SSH框架是至关重要的,这涉及到Spring的依赖注入、Hibernate的数据持久化,以及Struts 2的MVC模式和请求处理。 总的来说,"STRUTS-2.3.1.2-PART1"压缩包为开发者提供了全面的Struts 2...
SSH(Struts + Spring + Hibernate)是一种广泛应用于企业级Web应用开发的开源框架组合。Struts提供了MVC(模型-视图-控制器)架构,Spring则是一个全面的后端应用框架,包括依赖注入、事务管理等功能,而Hibernate...
Spring的内容包括Spring IOC的使用、Spring ORM的使用、Spring AOP的使用、Spring事务管理、Spring整合Struts、Spring整合Hibernate等。 Hibernate的内容包括持久化概念、JDO架构、Hibernate概念、Hibernate中...
1. **《轻量级Java EE企业应用实战 Struts2+spring+hibernate整合开发》**,李刚著,2008年11月,电子工业出版社。 2. **《项目实战精解:基于struts-spring-hibernate的java应用开发(第二版)》**,梁立新著,2008...
系统采用了SSH(Spring + Struts + Hibernate)框架进行开发。SSH框架是一种常用的Web开发框架,能够帮助开发者构建灵活且易于扩展的应用程序。其主要分为四层:表示层、业务逻辑层、数据持久层和实体层。 - **表示...
- 采用Java语言及Struts+Spring+Hibernate框架进行开发,提高系统的可扩展性和灵活性。 3. **业务流程管理**: - 实现业务流程自动化,提高工作效率,减少人为错误。 - 支持多种查询统计功能,满足不同层级管理...
* Struts2 框架技术、Spring 框架技术、Hibernate 框架技术、SSH2 整合技术 * Android 开发、Java Web 应用开发、面向服务的架构设计 * 大数据技术与应用专业必修课程 大数据技术与应用专业人才培养综合方案旨在...
使用Eclipse, Mysql, Maven等工具,运用Struts2, Spring, Hibernate等技术,实现了Windows Server 2003上的云安全服务。 - **中国移动云测试平台**:开发了统一的测试平台,实现云端桌面和控制模块的功能,通过...
5. **编程技术**:精通JavaWeb开发,包括JSP、Servlet、JDBC等,熟悉Struts、Hibernate、Spring、Ibatis等主流开发框架,能够进行SSI或SSH整合开发。 6. **前端技术**:掌握JavaScript、jQuery等前端框架,以及Ajax...
SSH框架是Java Web开发中的一个流行选择,它整合了Struts的MVC设计模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能。这种框架的使用提高了代码的可维护性和可扩展性,同时也简化了开发过程。 在...
专业核心课程包括 Java 语言、Struts2 框架技术、Spring 框架技术、Hibernate 框架技术、SSH2 整合技术、Android 开发、Java Web 应用开发、面向服务的架构设计等。 五、发展空间 发展空间包括学历提升、职业资格...