Spring入门4:Spring + Hibernate + Struts整合
2018-03-29 22:23
417 查看
SSH整合: 三个框架间整合,让其能互相依赖完成业务流程.
SH和SS两两之间的整合.
整合的时候,要分别测试SSH的各个环境能单独运行.
*****************************
Spring提供操作dao的类
HibernateTemplate类
// 直接注入HibernateTemplate工具类
||
vv
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
使用hibernateTemplate对象操作数据.
HibernateDaoSupport类
public class DeptDao extends HibernateDaoSupport implements IDeptDao{}
// dao继承HibernateDaoSupport类,注意:配置时,一定要注入SessionFactory对象或HibenateTemplate对象
使用getHibernateTemplate()方法去操作数据.
*若有不足或错误,请多多指教,谢谢!*
SH和SS两两之间的整合.
整合的时候,要分别测试SSH的各个环境能单独运行.
1.创建数据库和表:过程略
2.web.xml配置
<!-- struts核心过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- SpringIOC容器初始化 --> <!-- 指定容器路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:bean.xml</param-value> </context-param> <!-- 创建容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
3.创建数据表对应的实体类:代码略
4.实体类与表的映射:配置略
5.dao类:接口略
public class UserDao implements IUserDao { //注入sessionFactory private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void save(User user){ sessionFactory.getCurrentSession().save(us 4000 er); } }
6.service类:接口略
public class UserService implements IUserService { // 注入dao private IUserDao userDao; public void setUserDao(IUserDao userDao) { this.userDao = userDao; } @Override public void save(User user) { userDao.save(user); } }
7.action类
public class UserAction extends ActionSupport{ public UserAction(){ System.out.println("--->创建Action"); } // 注入Service private IUserService userService; public void setUserService(IUserService userService) { this.userService = userService; } // 封装请求数据 private User user; public void setUser(User user) { this.user = user; } public User getUser() { return user; } public String execute() { try { userService.save(user); return super.execute(); } catch (Exception e) { e.printStackTrace(); return null; } } }
8. struts配置
<package name="user" extends="struts-default"> <!-- 整合后: class 指定全名,有插件创建Action且处理依赖关系! struts2-spring-plugin-2.3.4.1.jar (在spring中可以减少action的配置!) class 指定短名称,action的创建、以及依赖关系,完全交给spring! --> <action name="user" class="userAction"> <result>/index.jsp</result> </action> </package>
9. Spring配置bean.xml
<!-- 1. 连接池初始化 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql:///day33"></property> <property name="user" value="root"></property> <property name="password" value="root"></property> <property name="initialPoolSize" value="3"></property> <property name="maxPoolSize" value="6"></property> </bean> <!-- 2. Spring与Hibernate整合, 创建SessionFactory对象 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="javax.persistence.validation.mode">none</prop> </props> </property> <property name="mappingLocations"> <list> <value>classpath:cn/itcast/po/*.hbm.xml</value> </list> </property> </bean> <!-- 3. Spring声明式事务管理控制! --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="*" read-only="false"/> </tx:attributes> </tx:advice> <!-- 拦截:指定包下Service结尾的类的所有方法! --> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast.service.*Service.*(..))"/> </aop:config> <!-- Dao实例,注入SessionFactory --> <bean id="userDao" class="cn.itcast.dao.impl.UserDao"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- Service实例, 注入dao --> <bean id="userService" class="cn.itcast.service.impl.UserService"> <property name="userDao" ref="userDao"></property> </bean> <!-- Action实例, 注入service--> <bean id="userAction" class="cn.itcast.action.UserAction" scope="prototype"> <property name="userService" ref="userService"></property> </bean>*完成整合
*****************************
Spring提供操作dao的类
HibernateTemplate类
// 直接注入HibernateTemplate工具类
||
vv
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
使用hibernateTemplate对象操作数据.
HibernateDaoSupport类
public class DeptDao extends HibernateDaoSupport implements IDeptDao{}
// dao继承HibernateDaoSupport类,注意:配置时,一定要注入SessionFactory对象或HibenateTemplate对象
使用getHibernateTemplate()方法去操作数据.
*若有不足或错误,请多多指教,谢谢!*
相关文章推荐
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- (转)Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Struts+Spring+Hibernate整合入门详解
- Spring整合开发示例(分别与JDBC、Hibernate、Struts整合)
- 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
- Struts+Spring+Hibernate快速入门
- struts+hibernate+spring入门例子
- Struts、Spring、Hibernate之间的整合方式
- Struts+hibernate+Spring的整合方法