spring中的数据源

http://yonguo.iteye.com/blog/115221

1)Spring在第三方依赖包中包含了两个数据源的实现类包,DBCP数据源 , C3P0数据源,可以在spring中直接配置使用;

2)获取JNDI数据源 :如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源;

应用服务器的数据源,使用JNDI开放调用者使用

3) spring使用多数据源,其实就是使用动态数据源,进行切换

http://blog.csdn.net/wangpeng047/article/details/8866239

4)Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用;

5)使用spring注解式事务管理(也是声明式事务);

6)现有项目是如何使用事务的;

spring通过jndi 获取数据源 ---》根据数据源构建数据源工厂(此步可省略)----->根据数据源工厂构建事务管理器-----》

然后通过<tx:annotation-driven transaction-manager="txManager" />

就可以使用注解来使用事务;

7)spring3注解的方式不支持两个数据源,spring4可支持

8)使用JTA吧,,可以配置两个数据源,使用的就是同一个事务;

即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据

但是与本地事务相比,XA 协议的系统开销大,在系统开发过程中应慎重考虑是否确实需要分布式事务。若确实需要分布式事务以协调多个事务资源,则应实现

和配置所支持 XA 协议的事务资源,如 JMS、JDBC 数据库连接池等

http://progress.iteye.com/blog/612222

9) 数据源是配在容器中还是配置在项目中:

1、在web容器中管理数据源,那么系统代码就不会触及数据源信息,这样能够保护正式环境的数据库安全。比如说开发人员只要在容器中配置测试数据源,以后代码变更基本上不需要修改这部分。

如果在项目中配置数据源,版本库上的配置信息就会被开发人员触及到,随时会产生误操作

2、很多容器里面配置的数据源,一旦配置正确,就会对敏感信息加密。而在项目配置数据源,需要特殊处理。

3、在项目中配置的数据源基本上采用第三方库(dbcp、c3p0、druid等),随时可以替换,这些开源产品都是专注于连接池的自身管理优化。而web容器配置的数据源有的会考虑整体的综合性能以

及连接情况的监控,像weblogic提供的控制台提供了很好的管理界面。

4、对于经常会替换数据源连接信息的,感觉在项目中配置方便些

时间: 2024-08-28 19:48:00

spring中的数据源的相关文章

spring中配置数据源

spring中配置数据源的几种常见方式: #mysql 数据库配置(jdbc.properties) jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=root 1.使用spring自带的数据源org.springfr

Spring中配置数据源的4种形式

不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源. 1.spring自带的数据源 DriverManagerDataSource XML代码: [html] view plain copy <bean id="dataSource" class="org.springframework.jdbc.data

Spring中配置数据源的4种形式(转)

原文http://blog.csdn.net/orclight/article/details/8616103 不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源. 1.spring自带的数据源 DriverManagerDataSource XML代码: [html] view plaincopy <bean id="dat

Spring中实现多数据源事务管理

Spring中实现多数据源事务管理 前言 由于项目中引入了多个数据源,并且需要对多个数据源进行写操作,那么多数据源的事务管理自然成了不可避免的问题,这也让我对@Transactional注解有了进一步的理解(但实际上也并不是非常深入) 然而这是一个演进的过程,刚开始项目中并没有使用@Transactional指定具体的TransactionManager,所以新增一个数据源后,对原有的事务产生了影响了,这也是偶尔在一次测试报错而结果没有回滚之后才发现的,遂对于@Transactional注解的一

Struts2+Spring3+Hibernate4中,数据源应配置在Spring下,否则有异常:Cannot unwrap to requested type [javax.sql.DataSource]

启动项目,报错:org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource].也就是说,不能打开数据源.可是我在Hibernate的配置文件中明明配置了数据源了啊.原来应该由Spring来管理数据源,而Hibernate只需要管理OR-Mapping就可以了.于是将Hibernate的数据源删除,在Spring中配置.代码如下: 1 <bean id

Spring中AOP方式实现多数据源切换

作者:suroot spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据. Spring2.x以后的版本中采用Proxy模式,就是我们在方案中实现一个虚拟的数据源,并且用它来封装数据源选择逻辑,这样就可以有效地将数据源选择逻辑从Client中分离出来.Client提供选

spring框架中多数据源创建加载并且实现动态切换的配置实例代码

原文:spring框架中多数据源创建加载并且实现动态切换的配置实例代码 源代码下载地址:http://www.zuidaima.com/share/1774074130205696.htm 在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFa

各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包

在开发基于数据库的应用系统时.须要在项目中进行数据源的配置来为数据 库的操作取得数据库连接. 配置不同数据库的数据源的方法大体上都是同样的.不同的仅仅是不同数据库的JDBC驱动类和连接URL以及对应的数据库username和密 码不同.以下列出8中经常使用的数据库的数据库数据源配置和对应的JDBC驱动包. 1.Spring中数据源配置格式 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSour

Log4j配置文件位置+Spring中数据源配置文件位置

一.Log4j配置文件位置 1.自动加载 应用程序启动时,默认情况下会到src目录下寻找log4j.xml配置文件,若不存在,会继续寻找log4j.properties文件,只要找到其中一个就会加载该配置文件内容. 2.手动加载 如果将log4j.properties(或log4j.xml)放到其它目录下,比如下图中的位置,应用程序就不能自动加载log4j的配置文件了,因为应用程序找不到该配置文件,你需要手动加载. 需要在应用程序启动的代码中加入如下的代码: //加载config文件夹下的log