SSH 多数据源-样例1
来自:http://www.0djx.com/article/20100520/7719.html
使用SSH框架配置多个数据源,如何解决事务的问题,是需要每个sessionFactory都配备一个事务还是像我这种情况就可以了
<?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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<!-- Import Apache CXF Bean Definition -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- 配置多个数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/doltrip">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 所有第三方数据的数据源 -->
<bean id="alldataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/alldata">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 配置驴妈妈的数据源 -->
<bean id="aSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/a">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 配置sessionFactory -->
<!--
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value> </property> </bean>
-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/doltrip/model/Department.hbm.xml</value>
<value>com/doltrip/model/Employee.hbm.xml</value>
<value>com/doltrip/model/Device.hbm.xml</value>
<value>com/doltrip/model/SdCard.hbm.xml</value>
<value>com/doltrip/model/DeviceType.hbm.xml</value>
<value>com/doltrip/model/Contract.hbm.xml</value>
<value>com/doltrip/model/PhoneDetail.hbm.xml</value>
<value>com/doltrip/model/SimCard.hbm.xml</value>
<value>com/doltrip/model/Customer.hbm.xml</value>
<value>com/doltrip/model/DeviceMatain.hbm.xml</value>
<value>com/doltrip/model/Role.hbm.xml</value>
<value>com/doltrip/model/Bulletin.hbm.xml</value>
<value>com/doltrip/model/User.hbm.xml</value>
<value>com/doltrip/model/Module.hbm.xml</value>
<value>com/doltrip/model/Usersroles.hbm.xml</value>
<value>com/doltrip/model/Acl.hbm.xml</value>
<value>com/doltrip/model/DevsSims.hbm.xml</value>
<value>com/doltrip/model/DeviceOpLog.hbm.xml</value>
<value>com/doltrip/model/Positions.hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置第三方软件sessionFactory -->
<bean id="alldatasessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="alldataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>
</list>
</property> -->
</bean>
<!-- 配置驴妈妈sessionFactory -->
<bean id="asessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="aSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>
</list>
</property> -->
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.doltrip.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>
自我分析:
1:学习一下对于数据源对于异常情况的一个处理:
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
2:思路
建立数据源
建立SESSION 此处用同一个sessionFactory十分有问题?
建立transactionManager 此处十分有问题?
建立切点(事务)此处十分有问题
需要编程中检验。
分享到:
相关推荐
3. Hibernate的配置和实体映射:如何创建数据库表对应的实体类,以及配置数据源和SessionFactory。 4. 整合部分:Spring如何管理Struts2的Action,以及如何管理Hibernate的数据访问。 实践这些代码样例,可以帮助你...
这篇内容将深入探讨SSH+CXF的整合过程,以及如何进行单个CXF测试样例。 首先,Spring作为整个应用的依赖注入容器,负责管理所有的Bean。在整合CXF时,Spring可以配置CXF服务的生命周期,包括服务的创建、发布和销毁...
在样例中,Hibernate的相关配置通常会包含在Spring配置文件中,包括数据源设置、SessionFactory创建等。 4. **整合SSH**:SSH框架的整合主要涉及Spring如何管理Struts2的Action和Hibernate的Session。Spring可以...
在SSH整合中,Spring作为核心,负责协调其他两个框架的工作,如事务管理、数据源配置以及服务层和DAO层的注入等。 Struts是MVC(Model-View-Controller,模型-视图-控制器)设计模式的实现,主要用于处理HTTP请求和...
3. 配置Hibernate:设置Hibernate的配置文件hibernate.cfg.xml,定义实体类和数据源,编写DAO接口和实现类。 4. 整合Spring和Hibernate:通过Spring管理Hibernate的SessionFactory,使用Spring的JdbcTemplate或...
4. SSH框架的配置:熟悉各个框架的配置文件,例如Spring的bean配置,Struts的动作配置,以及Hibernate的数据源和映射配置。 5. 测试和调试:了解如何使用Maven的测试插件(如maven-surefire-plugin)进行单元测试和...
在压缩包中,你会看到Spring的配置文件如spring-context.xml,展示了如何定义bean,配置数据源,以及如何与Struts2进行集成。 3. **Hibernate5**: Hibernate是一个对象关系映射(ORM)框架,它允许开发者用Java...
Struts2是一个强大的Java web应用程序...这个简单的样例程序是学习和理解这三个框架集成的起点,对于初学者来说,通过分析和运行这个程序可以深入理解MVC模式以及SSH或SSiB(Struts2、Spring、iBatis)的协同工作方式。
5. **集成与配置**:SSH的集成涉及到多个配置文件的协调,例如Struts的Action配置、Spring的Bean管理、Hibernate的数据源和SessionFactory设置。开发者需要确保这些配置的一致性,使得请求能正确地从Struts传递到...
2. **Spring配置文件**:如applicationContext.xml,用于配置Bean、数据源、事务管理器等。 3. **Hibernate配置文件**:如hibernate.cfg.xml,包含了数据库连接信息、实体类映射等。 4. **业务逻辑类**:实现了具体...
6. **applicationContext.xml**:Spring 框架的配置文件,可以定义 Bean、数据源、事务管理器等。在整合 Quartz 时,Spring 可以用来管理 Job 和 Trigger 对象,以及 Quartz Scheduler 实例。 7. **struts.xml**:...
Spring框架是一个全面的后端开发解决方案,涵盖了依赖注入、面向切面编程、数据访问、事务管理等多个方面。Spring 2在这个基础上进一步强化了AOP(面向切面编程)和Web MVC功能,同时也增强了对其他框架如Hibernate...
4. **模拟数据源**:在这个项目中,数据源是通过XML模拟的,这意味着在实际设备不可用时,开发者可以通过模拟数据进行测试和调试。这通常涉及到创建XML文档来模拟网络设备的配置状态。 5. **订阅通知**:NETCONF...
Inventory 是 Ansible 中用于定义目标主机列表的文件,可以是静态的文本文件,也可以是动态的,从其他数据源(如数据库或 EC2 API)获取。它可以指定主机的分组,以及附加的变量,这些变量可以在 playbook 中引用。 ...
#### 1. 文档概述与背景 - **文档目的**:旨在简化Hadoop集群的部署过程,使用户能够快速、高效地完成Hadoop系统的安装与配置。 - **背景介绍**:随着大数据技术的发展,Hadoop作为一种分布式计算框架,被广泛应用...
此时即可调用C3p0Ds.getDataSource()或DruidDs.getDataSource()方法获得默认的数据源 如果要自定义数据库配置文件的参数,请调用相应的init(),传入相关参数 注:Setting对象请参考与之对应的章节 2、...
实验步骤中,我们学习了 TCP 协议的头部结构,了解了 TCP 数据包的组成部分,包括源端口、目的端口、序列号、确认号、数据偏移、保留、紧急指针、窗口、校验和、紧急指针等。 在实验中,我们使用 Wireshark 工具...
- **脚本样例**:提供了实际使用的脚本示例,帮助用户掌握如何编写和运行脚本。 - **基本设置**:涵盖了Ubuntu系统的初始设置步骤,包括网络配置、用户管理等。 - **Ubuntu发行版基本概念**:解释了Ubuntu的不同发行...