`

Spring数据源的配置

阅读更多

无论使用何种DAO都需要配置数据源。Spring提供了一些配置数据源的方法,包括通过JDBC驱动,通过JNDI查询以及数据池连接等。下面分别介绍各种数据源配置的方法

·使用JNDI数据源

       此种方法的好处在于他们可以独立应用程序之外进行配置。应用程序只有在需要访问数据库时才需要请求数据源。通常情况下,应用服务器中配置的数据源是以数据池的方式配置的,这样就可以让系统管理员很容易地进行配置。

       在Spring中,我们可以配置一个数据源并将其保存在JNDI中,而且可以像JavaBean一样进行使用。这里有个JndiObjectFactoryBean类,它负责从JNDI中获取数据源。

<bean id=”dataSource” class=”org.springframework.jndi.JndiObjectFactoryBean” scope=”singleton”>

       <property name=”jndiName” value=”/jdbc/RantzDatasource” />

       <property name=”resoureceRef” value=”true” />

</bean>

 

jndiName的属性被用于指定JNDI中的资源名称。只有属性被设置了之后才可以开始查询数据源。如果应用程序是跑在一个Java应用程序中的话,你需要将resourceRef属性设置为true。resourceRef属性为true时,jndiName的值将会是以java:comp/env/开头的。例如:java:comp/env/jdbc/RantzDatasource。

·Spring2.0中的JNDI数据源

       Spring2.0使用jee命名空间极大地简化了获取数据源xml的编写,例如,

<bean xmlns=http://www.springframework.org/schema/beans

       xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

       xmlns:jee=http://www.springframework.org/schema/jee

       xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

       http://www.springframework.org/schema/jee

       http://www.springframework.org/schema/jee/spring-jee-2.0.xsd”>

jee命名空间提供了<jee:jndi-lookup>元素来从JNDI元素获取对象。下面的XML代码和前面JndiObjectFactoryBean是等价的:

<jee:jndi-lookup id=”dataSource” jndi-name=”/jdbc/RantzDatasource”

       resource-ref=”true” />

jndi-name和resource-ref属性对应于JndiObjectFactoryBean中的jndiName和resourceRef属性。

·使用数据源池

       Spring本身不提供一个数据源池。DBCP(DataBase Connection Pools)是一个可用的数据源池。将DBCP加到你的应用程序中有两种方式:1. 将DBCP的jar包加到你的build path中;2. 在Maven2的pom.xml中加入下面代码:

<dependency>

       <groupId>commons-dbcp</groupId>

       <artifactId>commons-dbcp</artifactId>

       <version>1.2.1</version>

</dependency>

DBCP包含了一些具有pooling的数据源,而BasicDataSource是最常被用到的,下面给出一个实例:

<bean id=”dataSource”

       class=”org.apache.commons.dbcp.BasicDataSource”>

       <property name=”driverClassName” value=”org.hsqldb.jdbcDriver” />

       <property name=”url”

value=”jdbc:hsqldb:hsql://localhost/roadrantz/roadrantz” />

       <property name=”username” value=”sa” />

       <property name=”password” value=”sa” />

       <property name=”initialSize” value=”5” />

       <property name=”maxActive” value=”10” />

</bean>

·基于JDBC驱动的数据源

       通过一个JDBC驱动配置数据域在Spring中是最简单的。在Spring的org.spring.framework.jdbc.datasource包中有两个类你可以使用:DriverManagerDataSource类和SingleConnectionDataSource类。配置方法和DBCP类似:

<bean id=”dataSource”

       class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>

       <property name=”driverClassName” value=”org.hsqldb.jdbcDriver” />

       <property name=”url”

value=”jdbc:hsqldb:hsql://localhost/roadrantz/roadrantz” />

       <property name=”username” value=”sa” />

       <property name=”password” value=”sa” />

</bean>

上面的代码与DBCP的区别在于它们没有任何数据源池的配置属性。另外,SingleConnectionDataSource只提供一个数据源,所以并不能适用在多线程的应用中,即使DriverManagerDataSource支持多线程,但它总是一次请求创建一个新的连接,这样会影响性能。因此,还是建议适用pooled的数据源。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/amethystic/archive/2009/03/09/3973280.aspx

分享到:
评论

相关推荐

    spring数据源配置

    ### Spring 数据源配置详解 #### 一、Spring与数据源简介 在Java企业级应用开发中,数据库操作是必不可少的一部分。Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据...

    spring数据源配置解析

    阐述spring的数据源配置

    Spring数据源配置实例(转)

    本实例将探讨如何在Spring中配置数据源,以便于管理数据库连接。首先,我们来了解一下Spring支持的数据源类型。 1. **Apache Commons DBCP**: Apache Commons DBCP 是一个基于Jakarta Pool的数据库连接池实现。...

    Spring 数据源不同配置

    Spring支持多种数据源配置方式,包括基本的JDBC数据源、连接池数据源以及事务管理策略等。下面将详细介绍Spring中常见的数据源配置及其相关知识点。 1. **基本JDBC数据源** Spring提供了一个名为`BasicDataSource`...

    spring boot多数据源配置

    在Spring Boot应用中,多数据源配置是一项关键的技术,它允许我们同时管理多个数据库,比如主库和从库,或者不同类型的数据库。本教程将详细阐述如何在Spring Boot项目中实现这一功能,从数据源配置、实体管理到...

    spring 动态多数据源配置代码

    下面将详细介绍Spring动态多数据源配置的相关知识点。 1. **为什么要使用多数据源**: 在实际项目中,可能需要连接到不同的数据库,例如,一个用于存储主业务数据,另一个用于日志记录或数据分析。通过多数据源...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    在多数据源配置中,Spring能够帮助管理不同的数据源,通过配置bean来切换和控制数据源的使用。 **SpringMVC** 是Spring框架的一部分,专为Web开发设计。它简化了模型-视图-控制器(Model-View-Controller,MVC)的...

    Spring多数据源配置

    Spring多数据源配置,支持mysql、oracle等多个数据源同时存在的情况

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    Spring Boot结合JPA(Java Persistence API)和JdbcTemplate,为开发者提供了灵活且强大的多数据源配置能力。本示例将详细介绍如何在Spring Boot项目中实现这样的配置,以支持不同类型的数据库。 首先,我们要理解...

    springboot多数据源配置

    在Spring Boot应用中,多数据源配置是一项重要的技术实践,特别是在大型系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或是分布式事务管理。Spring Boot以其强大的自动化配置能力,使得设置多数据源变得...

    Spring MySQL多数据源

    1. Spring数据源配置:如何创建并管理多个`DataSource`实例。 2. 事务管理:如何配置多个`PlatformTransactionManager`,以及如何在方法级别指定使用哪个事务管理器。 3. 动态数据源路由:如何使用`...

    SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置).docx

    ### Spring Boot多数据源配置详解 #### 一、引言 在实际的软件开发过程中,随着业务需求的多样化,单一的数据源已经无法满足所有场景的需求。例如,有时我们需要同时访问两个或更多的数据库来完成复杂的业务逻辑,...

    SpringBoot配置多数据源实现动态切换数据源

    多数据源配置允许我们灵活地管理这些数据。 SpringBoot实现多数据源主要依靠Spring的`@Configuration`和`@DataSourceConfiguration`注解,以及Spring JDBC的`DataSource`接口。下面是一个基本的配置示例: ```java...

    spring mvc 配置多数据源

    # Oracle数据源配置 jdbc.driver=oracle.jdbc.OracleDriver jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:dev jdbc.username=ling jdbc.password=229 # MySQL数据源配置 jdbc-mysql.driver=com.mysql.jdbc.Driver ...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...

    Spring Boot使用spring-data-jpa配置Mysql多数据源

    # 主数据源配置 spring: datasource: primary: url: jdbc:mysql://localhost:3306/main_db?useSSL=false&serverTimezone=UTC username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver...

    基于注解和Spring的多数据源配置和使用

    本篇文章将深入探讨如何基于注解和Spring实现多数据源配置和使用。 首先,我们需要理解"注解"在Java中的作用。注解是一种元数据,它提供了一种安全的方法来关联信息和代码(类、方法、变量等)。Spring框架广泛使用...

    Spring的数据源配置 DBCP、C3P0、BoneCP、JNDI.docx

    Spring 数据源配置 DBCP、C3P0、BoneCP、JNDI Spring 框架中,数据源配置是一个非常重要的环节。今天,我们将探讨四种常见的数据源配置方式:DBCP、C3P0、BoneCP 和 JNDI。 DBCP(Database Connection Pool) ...

    spring配置JNDI数据源

    Spring框架作为一个强大的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器,提供了多种配置数据源的方式,其中包括通过JNDI(Java Naming and Directory Interface)来查找和配置数据源。...

Global site tag (gtag.js) - Google Analytics