第一种:beans.xml

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  2. destroy-method="close">
  3. <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
  4. <property name="url"
  5. value="jdbc:sqlserver://localhost:1433;DatabaseName=spring" />
  6. <property name="username" value="sa" />
  7. <property name="password" value="********" />
  8. </bean>

第二种:beans.xml 
    <bean id="mappings"

  1. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. <property name="locations" value="classpath:jdbc.properties"></property>
  3. </bean>
  4. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  5. destroy-method="close">
  6. <property name="driverClassName" value="${jdbc.driverClassName}" />
  7. <property name="url" value="${jdbc.url}" />
  8. <property name="username" value="${jdbc.username}" />
  9. <property name="password" value="${jdbc.password}" />
  10. </bean>

在src文件夹里新建一个jdbc.properties文件,里面的内容为如下:

  1. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
  2. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
  3. jdbc.username=sa
  4. jdbc.password=********

第三种: 
beans.xml

  1. <bean id="mappings"
  2. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  3. <property name="locations" value="classpath:jdbc.properties"></property>
  4. </bean>
  5. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  6. destroy-method="close">
  7. <property name="driverClassName" value="${jdbc.driverClassName}" />
  8. <property name="url" value="${jdbc.url}" />
  9. <property name="username" value="${jdbc.username}" />
  10. <property name="password" value="${jdbc.password}" />
  11. </bean>
  12. <context:property-placeholder location="classpath:jdbc.properties" />在src文件夹里新建一个jdbc.properties文件,里面的内容为如下:
  13. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
  14. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
  15. jdbc.username=sa
  16. jdbc.password=********

其中第二种与第三种类似,只是指定配置文件的方法不一样。 
第四种: 
beans.xml

  1. <bean id="mappings"
  2. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  3. <!-- typed as a java.util.Properties -->
  4. <property name="properties">
  5. <value>
  6. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
  7. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
  8. jdbc.username=sa
  9. jdbc.password=********
  10. </value>
  11. </property>
  12. </bean>
  13. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  14. destroy-method="close">
  15. <property name="driverClassName" value="${jdbc.driverClassName}" />
  16. <property name="url" value="${jdbc.url}" />
  17. <property name="username" value="${jdbc.username}" />
  18. <property name="password" value="${jdbc.password}" />
  19. </bean>

第五种:

  1. beans.xml
  2. <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
  3. destroy-method="close"
  4. p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  5. p:url="jdbc:sqlserver://localhost:1433;DatabaseName=spring"
  6. p:username="sa"
  7. p:password="********"/>

再加上命名空间:

  1. xmlns:p="http://www.springframework.org/schema/p"

性能参数要根据实际情况测试得来的数据确定如何配置。 
转自:http://www.cppblog.com/fenglin/articles/130494.html 

第六种,在网上看到 

  Spring中提供了一种简便的方式就是context:property-placeholder/元素 
只需要在spring的配置文件里添加一句

  1. <context:property-placeholder location="classpath:jdbc.properties"/>

即可,这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键值对的形式,例如: 
#jdbc配置

  1. test.jdbc.driverClassName=com.mysql.jdbc.Driver
  2. test.jdbc.url=jdbc:mysql://localhost:3306/test
  3. test.jdbc.username=root
  4. test.jdbc.password=root

行内#号后面部分为注释 
应用: 
1.这样一来就可以为spring配置的bean的属性设置值了,比如spring有一个jdbc数据源的类DriverManagerDataSource 
在配置文件里这么定义bean:

  1. <bean id="testDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  2. <property name="driverClassName" value="${test.jdbc.driverClassName}"/>
  3. <property name="url" value="${test.jdbc.url}"/>
  4. <property name="username" value="${test.jdbc.username}"/>
  5. <property name="password" value="${test.jdbc.password}"/>
  6. </bean>

注意配置文件中

<bean id="accountDao" class="my.dao.impl.AccountDaoImpl">
  <property name="dataSource" ref="dataSource"/>
</bean>

2.甚至可以将${ }这种形式的变量用在spring提供的注解当中,为注解的属性提供值 
外在化应用参数的配置 

在开发企业应用期间,或者在将企业应用部署到生产环境时,应用依赖的很多参数信息往往需要调整,比如LDAP连接、RDBMS JDBC连接信息。对这类信息进行外在化管理显得格外重要。PropertyPlaceholderConfigurer和PropertyOverrideConfigurer对象,它们正是担负着外在化配置应用参数的重任。 

  <context:property-placeholder/>元素 
PropertyPlaceholderConfigurer实现了BeanFactoryPostProcessor接口,它能够对<bean/>中的属性值进行外在化管理。开发者可以提供单独的属性文件来管理相关属性。比如,存在如下属性文件,摘自userinfo.properties。

  1. db.username=scott
  2. db.password=tiger

如下内容摘自propertyplaceholderconfigurer.xml。正常情况下,在userInfo的定义中不会出现${db.username}、${db.password}等类似信息,这里采用PropertyPlaceholderConfigurer管理username和password属性的取值。DI容器实例化userInfo前,PropertyPlaceholderConfigurer会修改userInfo的元数据信息(<bean/>定义),它会用userinfo.properties中db.username对应的scott值替换${db.username}、db.password对应的tiger值替换${db.password}。最终,DI容器在实例化userInfo时,UserInfo便会得到新的属性值,而不是${db.username}、${db.password}等类似信息。

  1. <bean id="propertyPlaceholderConfigurer"
  2. class="org.springframework.beans.factory.config.
  3. PropertyPlaceholderConfigurer">
  4. <property name="locations">
  5. <list>
  6. <value>userinfo.properties</value>
  7. </list>
  8. </property>
  9. </bean>
  10. <bean name="userInfo" class="test.UserInfo">
  11. <property name="username" value="${db.username}"/>
  12. <property name="password" value="${db.password}"/>
  13. </bean>

通过运行并分析PropertyPlaceholderConfigurerDemo示例应用,开发者能够深入理解PropertyPlaceholderConfigurer。为简化PropertyPlaceholderConfigurer的使用,Spring提供了<context:property-placeholder/>元素。下面给出了配置示例,启用它后,开发者便不用配置PropertyPlaceholderConfigurer对象了。 

<context:property-placeholder location="userinfo.properties"/> 
PropertyPlaceholderConfigurer内置的功能非常丰富,如果它未找到${xxx}中定义的xxx键,它还会去JVM系统属性(System.getProperty())和环境变量(System.getenv())中寻找。通过启用systemPropertiesMode和searchSystemEnvironment属性,开发者能够控制这一行为。

Spring中配置DataSource的六种方式的更多相关文章

  1. Spring中配置DataSource数据源的几种选择

    从JNDI获得DataSource. 从第三方的连接池获得DataSource. 使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource ...

  2. spring配置datasource三种方式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1.使用org.spri ...

  3. Spring事务配置的五种方式(转发)

    Spring事务配置的五种方式(原博客地址是http://www.blogjava.net/robbie/archive/2009/04/05/264003.html)挺好的,收藏转发 前段时间对Sp ...

  4. Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别

    转: http://blog.csdn.net/it_man/article/details/5074371 Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之 ...

  5. 在Spring中配置SQL server 2000

    前言 Lz主要目的是在Spring中配置SQL server 2000数据库,但实现目的的过程中参差着许多SQL server 2000的知识,也包罗在本文记载下来!(Lz为什么要去搞sql serv ...

  6. spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法 方法一: 1.在Spring的applicationContext.xml中配置bean <!-- 启用注解注入  -->      ...

  7. spring中配置数据源

    spring中配置数据源的几种常见方式: #mysql 数据库配置(jdbc.properties) jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.u ...

  8. 在Spring中配置jdbc为什么不能用${username}问题

    楼主在spring中配置jdbc时,引用的是dbcp.jar包,在dataSource.properties配置文件中,有mysql用户名,楼主自然的选择了使用username,密码是root, 然后 ...

  9. spring中配置监听队列的MQ

    一.spring中配置监听队列的MQ相关信息注:${}是读取propertites文件的常量,这里忽略.绿色部分配置在接收和发送端都要配置.  <bean id="axx" ...

随机推荐

  1. 追女神助手v0.1

    #-*-coding:utf8-*- import smtplib from email.mime.text import MIMEText import requests from lxml imp ...

  2. Spring源码分析:Spring IOC容器初始化

    概述: Spring 对于Java 开发来说,以及算得上非常基础并且核心的框架了,在有一定开发经验后,阅读源码能更好的提高我们的编码能力并且让我们对其更加理解.俗话说知己知彼,百战不殆.当你对Spri ...

  3. SQL基础-----DML语句

    之前已经介绍过SQL基础之DDL(数据库定义语言)语句,http://www.cnblogs.com/cxq0017/p/6433938.html(这是地址) 这篇文章主要介绍DML语句(数据库操纵语 ...

  4. Unity中的基础光照

    渲染包含了两大部分:决定一个像素的可见性,决定这个像素上的光照计算. 光照模型就是用于决定在一个像素上进行怎样的光照计算. 一.光源 在实时渲染中我们通常把光源当做一个没有体积的点. 1.1 辐照度 ...

  5. 关于python 使用腾讯云OCR 通用印刷体识别

    腾讯的python SDK没有通用印刷体识别,所以参考了别人识别网上图片的方式:https://www.cnblogs.com/semishigure/p/7690789.html 但是咱们使用的基本 ...

  6. java中的多态案例

    多态性实际上有两种: 1.方法的多态性: 1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法 1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能 2.对象的多态性 ...

  7. 使用Docker安装Jenkins

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 环境准备 腾讯云 硬件配置: ...

  8. [LeetCode] License Key Formatting 注册码格式化

    Now you are given a string S, which represents a software license key which we would like to format. ...

  9. 原生nodejs在线聊天系统

    前端自动化由来已久,最近为了编写自己的自动化工具,本人开始详细学习node,为了检验学习成果,决定编写一个类似于webqq的聊天系统.以下是该系统具有的模块. 登录模块(自动登录) 聊天模块(私聊,群 ...

  10. 模板 AC自动机

    题目描述 有$N$ 个由小写字母组成的模式串以及一个文本串$T$ .每个模式串可能会在文本串中出现多次.你需要找出哪些模式串在文本串$T$ 中出现的次数最多. 输入输出格式 输入格式: 输入含多组数据 ...