spring、Struts2、Hibernate整合
一、Hibernate框架
1.导入jar包


2.hibernate核心配置文件 hibernate.cfg.xml

4.映射配置 User.hbm.xml

二、Struts2框架
1.导入相关jar包

2.web.xml配置Struts2

3.Struts2核心配置文件 Struts.xml

4.log4j2.xml

三、Spring框架
1.导入相关jar包

2.web.xml 配置监听器

3.核心配置文件 AppactionContext.xml

四、SSH三大框架的整合思想
1. web应用的三层为:
1.1 web层,(struts2),Struts2框架用的最多的是action
1.2 service层(spring),spring中用的最多的是IoC和AOP,把对象的创建交给Spring进行管理
1.3 dao层(hibernate),hibernate则是用来操作数据库,进行CRUD
2.两两进行整合
2.1 Struts2和spring进行整合
将Struts中的action创建交给spring进行处理
2.2 hibernate和spring进行整合
两种方式(方式一)将SessionFactory的创建交给Spring进行管理

(方式二)Hibernate的核心文件的数据库信息也交给spring管理

注意:
1.最好在没添加一个框架之后就测试一下是否配置好
2.当三个框架整合好之后,只剩下AppactionContext.xml 和 log4j2.xml 其他都可以使用注解
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd">
<context:component-scan base-package="com.blb"/>
<!-- 数据源 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown">
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="readOnly" value="false" />
<property name="connectionTimeout" value="30000" />
<property name="idleTimeout" value="600000" />
<property name="maxLifetime" value="1800000" />
<property name="maximumPoolSize" value="15" />
</bean>
<bean id="mySessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" lazy-init="true">
<property name="dataSource" ref="dataSource"/>
<!-- <property name="configLocations" value="classpath:hibernate.cfg.xml"/> -->
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
</props>
</property>
<property name="packagesToScan" value="com.blb.entity"></property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>
<!-- 开启注解式事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
3.测试类
package com.blb.action;
import javax.transaction.Transactional;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.blb.entity.User;
import com.blb.service.IUserService;
import com.opensymphony.xwork2.ActionSupport;
@Controller
@Scope("prototype")
public class AppAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
public User getUser() {
return user;
}
@Autowired
private IUserService userSerivce;
@Action(value = "query", results = {@Result(name = SUCCESS, location = "/index.jsp")})
public String query(){
user = userSerivce.get("0");
return SUCCESS;
}
}
浙公网安备 33010602011771号