zoukankan      html  css  js  c++  java
  • spring整合struts2,hibernate

    1.导包

                    struts2包(不需要导入,之前学习struts2时已经导入)

                   hibernate包(不需要导入,之前学习hibernate时已经导入)

      

    Spring包

                 

    整合hibernate的没有hibernate.cfg.xml文件

              1.创建表

                

              2.po类

                      

                       所谓的javabean

                      数据库映射出来表

              3.dao

                  操作数据库类

              4.service

                   业务处理层

             

               5.applicationContext.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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 1 加载hibenrate.cfg.xml 获得SessionFactory
    * configLocation确定配置文件位置
    -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
    </bean>

    <!-- 2创建模板
    * 底层使用session,session 有sessionFactory获得
    -->
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 3 dao -->
    <bean id="userDao" class="test.dao.UserDao">
    <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>

    <!-- 4 service -->
    <bean id="userService" class="test.service.UserService">
    <property name="userDao" ref="userDao"></property>
    </bean>
    <!-- 5 事务管理 -->
    <!-- 5.1 事务管理器 :HibernateTransactionManager -->
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 5.2 事务详情 ,给ABC进行具体事务设置 -->
    <tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
    <tx:method name="register"/>
    </tx:attributes>
    </tx:advice>
    <!-- 5.3 AOP编程,ABCD 筛选 ABC -->
    <aop:config>
    <aop:advisor advice-ref="txAdvice" pointcut="execution(* test.service..*.*(..))"/>
    </aop:config>

    </beans>

    测试类:

                               

     数据库结果:

                       

     2.不使用hibernate.cfg.xml文件

                a.我们得知道hibernate的配置文件是干什么用的

                              a.1连接数据库的配置信息

                              a.2添加映射文件

                              a.3设置缓存

                             等其他的配置信息

         所以我们得使用applicationcontext.xml来完成配置

              a.1配置连接信息

              a.2spring框架整合hibernate框架的工程bean

              a.3注册事务管理器<必须>

              a.4组件扫描(使用组件扫描会对于开发过程节约很多时间)<使用注释时才用>

                      a.4.1可以不使用组件扫描

                                   自己在applicationContext.xml中编写

             a.5引入注解解析器<必须>

             a.6事务注解<必须>

             a.7切面类<非必须>

             a.8注册service<非必须>

                       a.1配置连接信息

     

    <context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${driverClass}"/>
    <property name="jdbcUrl" value="${jdbcUrl}"/>
    <property name="user" value="${user}"/>
    <property name="password" value="${password}"/>
    </bean>

                jdbc.properties文件

    driverClass=com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql:///bos19
    user=xiaoli
    password=123

                               a.2spring框架整合hibernate框架的工程bean

    <!-- spring框架用于整合Hibernate的工厂bean -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <!-- 注入数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 注入Hibernate相关的属性 -->
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    </props>
    </property>
    <!-- 注入Hibernate的映射文件 -->
    <property name="mappingDirectoryLocations">
    <list>
    <value>classpath:com/itheima/bos/domain</value>

    </list>
    </property>
    </bean>

                        a.3注册事务管理器

    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

                          a.4组件扫描

    <!-- 组件扫描 扫描含有注解的类 -->
    <context:component-scan base-package="com.itheima.bos"/>

                         a.5引入注解解析器

    <!-- 引入注解解析器 -->
    <context:annotation-config/>

                   a.6事务注解

    <!-- 事务注解 -->
    <tx:annotation-driven />
    <bean id="defaultAdvisorAutoProxyCreator"
    class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
    <!-- 强制使用cglib为Action创建代理对象 -->
    <property name="proxyTargetClass" value="true"></property>
    </bean>

             a.7切面类

    <!-- 切面类 -->
    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>

                   a.8注册service

    <!-- 注册Service -->
    <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService">
    </bean>
    <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService">
    </bean>
    <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService">
    </bean>
    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService">
    </bean>
    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService">
    </bean>

                                    a.9其他配置

    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <!-- 注入数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 注入事务管理器对象 -->
    <property name="transactionManager" ref="transactionManager"/>
    <property name="databaseSchemaUpdate" value="true" />
    </bean>

  • 相关阅读:
    git config配置,工作区和版本库联系。
    自动化监控系统(四) 客户端设计
    17、如何对字符串进行左, 右, 居中对齐 18、如何去掉字符串中不需要的字符 19、如何读写文本文件 20、如何处理二进制文件 21、如何设置文件的缓冲
    13、如何拆分含有多种分隔符的字符串 14、如何判断字符串a是否以字符串b开头或结尾 15、如何调整字符串中文本的格式 16、如何将多个小字符串拼接成一个大的字符串
    8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象
    5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)
    1、如何在列表,字典,集合种根据条件筛选数据?2、如何为元组中的每个元素命名,提高程序的可读性3、如何统计出序列中元素出现的频度4、如何根据字典中value的大小,对字典的key进行排序
    自动化监控系统(三) 搭建xadmin做网站后台
    自动化监控系统(二)连接数据库,创建app,添加model,同步数据库
    自动化监控系统(一)需求分析、架构设计
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/spring_struts_hibernate.html
Copyright © 2011-2022 走看看