在Struts2和Hibernate的整合中,为了避免"频繁创建和管理各层实现类,使程序耦合严重" ,在示例源码中使用工厂模式来管理实现类;为了避免"频繁编写管理数据库链接及事务等模板代码"问题,在示例源码中使用了 HibernateSessionFactory工具类来统一管理Hibernate的Session的管理,但是这些解决方法,仅仅能避免我们少写一些代码,当随着程序的增大,我们仍然要面临解耦和重复编码问题
Struts2,Spring,Hibernate整合 示例源码下载
我们在Struts2和Hibernate整合中可以看到,我们需要使用Spring来替我们解决程序的解耦和重复编码问题,那么Spring是如何来解决问题的呢?(依赖注入)
- 整合思路
- Struts2和Spring整合
- Spring和Hibernate整合
- 整合步骤
第一步:导入依赖(这里有坑,注意Spring的版本不要太高)
<dependencies> <!--Spirng--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.16.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.16.RELEASE</version> </dependency> <!--Spring-orm--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.3.16.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.16.RELEASE</version> </dependency> <!--Hibernate--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.3.7.Final</version> </dependency> <!--Struts2--> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.16</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>2.5.18</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.5.17</version> </dependency> <!--数据库相关--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency> <!--Servlet相关--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version>
