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>

  • 相关阅读:
    Java实现 LeetCode 661 图片平滑器(暴力)
    Java实现 LeetCode 661 图片平滑器(暴力)
    PHP imagecolorat
    PHP imagecolorallocatealpha
    PHP imagecolorallocate
    PHP imagecharup
    PHP imagechar
    网格 | CSS Grid (Grid Layout)
    网格 | @media.grid (Media Queries)
    缩放背景图像 | CSS Background and Borders: Scaling background images (Backgrounds & Borders)
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/spring_struts_hibernate.html
Copyright © 2011-2022 走看看