整合步骤
1.引入jar包
2.配置文件web.xml.struts.xml
3.创建包结构
4.两两整合:struts2整合spring
创建页面:创建保存商品的页面
5.编写Action,Service,Dao
6.配置Action,Service和Dao
自动注入时候:
使用struts自己生成adction时候:
<!-- 配置业务层的类 -->
<bean id="productService" class="service.ProductService">
<!--把到dao类注入到service类中 -->
<property name="productDao" ref="productDao"></property>
</bean>
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao"></bean>
此时的struts.xml:
<struts>
<package name="ssh" namespace="/" extends="struts-default">
<action name="product_*" class="action.ProductAction" method="{1}"></action>
</package>
</struts>
当使用spring来管理时候:需要加一个adction配置
<!-- 配置Action的类 -->
<bean id="productAction" class="action.ProductAction" scope="prototype">
<!-- 手动注入Service -->
<property name="productService" ref="productService"/>
</bean>
<!-- 配置业务层的类 -->
<bean id="productService" class="service.ProductService">
<!--把到dao类注入到service类中 -->
<property name="productDao" ref="productDao"></property>
</bean>
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao"></bean>
此时struts.xml发生变化:
<struts>
<package name="ssh" namespace="/" extends="struts-default">
<action name="product_*" class="productAction" method="{1}"></action> !!!!!!!!此处class发生变化
</package>
</struts>
7.spring整合hiberate
步骤七:创建数据库
步骤8:创建映射文件:XXXX.hbm.xml
创建属性文件:jdbc.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=123
在applicationContext.xml中需要配置连接池
<!-- 引入外部的属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置连接池 ,c3p0-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置hiberate的相关属性 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource"> <ref bean="dataSource"/></property>
<!--加载hiberate的映射文件 -->
<property name="mappingResources">
<list>
<value>domain/Product.hbm.xml</value>
</list>
</property>
<!-- 配置hiberate的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hiberate.dialect">
org.hiberate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
步骤8:
使用hiberate模版:直接继承
public class ProductDao extends HibernateDaoSupport{!!!!!继承
/*
* Dao中保存商品的方法
*/
public void save(Product product) {
System.out.println("Dao中的方法执行了");
//使用模版了,然后在applicationContenxtx,xml配置,
this.getHibernateTemplate().save(product);
}
}
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
步骤9:事务管理
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
开启注解事务:
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
在业务上service
@Transactional
1.引入jar包
2.配置文件web.xml.struts.xml
3.创建包结构
4.两两整合:struts2整合spring
创建页面:创建保存商品的页面
5.编写Action,Service,Dao
6.配置Action,Service和Dao
自动注入时候:
使用struts自己生成adction时候:
<!-- 配置业务层的类 -->
<bean id="productService" class="service.ProductService">
<!--把到dao类注入到service类中 -->
<property name="productDao" ref="productDao"></property>
</bean>
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao"></bean>
此时的struts.xml:
<struts>
<package name="ssh" namespace="/" extends="struts-default">
<action name="product_*" class="action.ProductAction" method="{1}"></action>
</package>
</struts>
当使用spring来管理时候:需要加一个adction配置
<!-- 配置Action的类 -->
<bean id="productAction" class="action.ProductAction" scope="prototype">
<!-- 手动注入Service -->
<property name="productService" ref="productService"/>
</bean>
<!-- 配置业务层的类 -->
<bean id="productService" class="service.ProductService">
<!--把到dao类注入到service类中 -->
<property name="productDao" ref="productDao"></property>
</bean>
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao"></bean>
此时struts.xml发生变化:
<struts>
<package name="ssh" namespace="/" extends="struts-default">
<action name="product_*" class="productAction" method="{1}"></action> !!!!!!!!此处class发生变化
</package>
</struts>
7.spring整合hiberate
步骤七:创建数据库
步骤8:创建映射文件:XXXX.hbm.xml
创建属性文件:jdbc.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=123
在applicationContext.xml中需要配置连接池
<!-- 引入外部的属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置连接池 ,c3p0-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置hiberate的相关属性 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource"> <ref bean="dataSource"/></property>
<!--加载hiberate的映射文件 -->
<property name="mappingResources">
<list>
<value>domain/Product.hbm.xml</value>
</list>
</property>
<!-- 配置hiberate的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hiberate.dialect">
org.hiberate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
步骤8:
使用hiberate模版:直接继承
public class ProductDao extends HibernateDaoSupport{!!!!!继承
/*
* Dao中保存商品的方法
*/
public void save(Product product) {
System.out.println("Dao中的方法执行了");
//使用模版了,然后在applicationContenxtx,xml配置,
this.getHibernateTemplate().save(product);
}
}
<!-- 配置dao的类 -->
<bean id="productDao" class="dao.ProductDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
步骤9:事务管理
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
开启注解事务:
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
在业务上service
@Transactional