`
lgzbj2006
  • 浏览: 28022 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PropertyPlaceholderConfigurer的用法:

阅读更多
用法1:

<?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"

         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">



<!-- 使用spring提供的PropertyPlaceholderConfigurer读取数据库配置信息.properties -->

         <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

                   <property name="locations">

                            <list>

                                     <!—

这里的classpath可以认为是项目中的src-
属性名是 locations,使用子标签<list></list>可以指定多个数据库的配置文件,这里指定了一个
->

                                     <value>classpath:resource/config/jdbc.properties</value>

                            </list>

                   </property>

         </bean>

此时的数据库配置文件项目路径是这样的



用法2:

读取数据库的配置文件还可以使用下面的方式

<?xml version="1.0" encoding="UTF-8"?>



<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

    <property name="locations">

      <list>

         <value>/WEB-INF/config_test/jdbc.properties</value>

      </list>

    </property>

  </bean>

此时jdbc.properties文件的位置如下图所示



.properties配置文件还可以有多个,这里在<list></list>标签中指定了2个数据的配置文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

    <property name="locations">

      <list>

        <value>classpath:jdbc.properties</value>

        <value>/WEB-INF/config_test/jdbc.properties</value>

      </list>

    </property>

  </bean>

classpath:jdbc.properties对应的文件位置是:



文件内容是:配置的是sqlserver的连接信息

sqlserver.username=sa

sqlserver.password=sqlserver

sqlserver.url=jdbc\:jtds\:sqlserver\://localhost\:1433/J2EE

sqlserver.driver=net.sourceforge.jtds.jdbc.Driver

/WEB-INF/config_test/jdbc.properties对应的文件位置是



文件内容是:配置的是oracle的连接信息

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl

jdbc.username=jxbms

jdbc.password=jxbms

这样数据库的配置信息被读取之后,在创建datasource的时候就可以使用了

下面连接oracle 使用apache的dbcp 数据源

<bean id="dataSource"

       class="org.apache.commons.dbcp.BasicDataSource"

       destroy-method="close">

       <property name="driverClassName">

           <value>${jdbc.driverClassName}</value>

       </property>

       <property name="url">

           <value>${jdbc.url}</value>

       </property>

       <property name="username">

           <value>${jdbc.username}</value>

       </property>

       <property name="password">

           <value>${jdbc.password}</value>

       </property>

       <property name="maxActive">

           <value>100</value>

       </property>

       <property name="maxIdle">

           <value>3</value>

       </property>

       <property name="maxWait">

           <value>-1</value>

       </property>

       <property name="defaultAutoCommit">

        <value>false</value>

       </property>

    </bean>

下面连接sqlserver数据库使用的是c3p0数据源

<bean id="dataSource_oracle" class="com.mchange.v2.c3p0.ComboPooledDataSource"

        destroy-method="close" >

        <property name="driverClass" value="${jdbc.driverClassName}" />

        <property name="jdbcUrl" value="${jdbc.url}" />

        <property name="user" value="${jdbc.username}" />

        <property name="password"  value="${jdbc.password}" />

</bean>

使用dbcp数据源令人郁闷的事,使用dbcp和spring提供的JdbcTemplate操作数据库是  查询是可以的

但是执行update、delete、insert into 操作时,数据库中的数据没有变化

从网上查询了很多的资料,都无果。最后偶然看到网上有人说,dbcp数据源的事务不会自动提交,

当改成c3p0数据源后好了

随后认为这下终于可以松口气了,谁知道天不遂人愿。当更换一张表进行测试,数据库中的数据还是没有变化,难道c3p0数据源也不好使,

当再次经过代码的折磨之后,

最终发现改动测试java文件,不在一个项目中,把其他的项目关闭就好了

当文档写到这里时,突然发现oracle使用的dbcp数据源有这一项配置

        <property name="defaultAutoCommit">

        <value>false</value>

       </property>

原来dbcp数据源事务的自动提交功能被关闭了

马上把事务自动提交改成true  进行测试,一切ok,(^ _ ^)
分享到:
评论

相关推荐

    Spring中PropertyPlaceholderConfigurer的使用

    Spring 中 PropertyPlaceholderConfigurer 的使用 PropertyPlaceholderConfigurer 是 ...基本使用方法 ---------- 使用 PropertyPlaceholderConfigurer 需要首先在 Spring 配置文件中定义一个 bean,例如: ```xml ...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    下面我们将详细探讨`PropertyPlaceholderConfigurer`的工作原理、使用方法以及其在实际开发中的应用。 `PropertyPlaceholderConfigurer`是Spring提供的一个Bean工厂后处理器,它的主要任务是在Spring容器初始化Bean...

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    以上就是关于"Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取"的详细解释,涵盖了Spring的配置处理、ZooKeeper的使用以及两者结合的实现过程。理解并掌握这一技术,有助于提升...

    基于Spring2.0 Property Placeholder配置的源码例子

    `PropertyPlaceholderConfigurer`允许自定义属性解析逻辑,比如通过实现`PropertySourcesPlaceholderConfigurer`并覆盖`resolvePlaceholder`方法。 8. **安全考虑**: 尽管使用Property Placeholder可以方便地...

    关于spring系统中多系统的配置

    ### 基本使用方法 首先,来看一下如何使用`PropertyPlaceholderConfigurer`: ```xml class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;value&gt;classpath:/spring/include/...

    SPRING中文开发参考手册

    - **通过实例工厂方法创建 Bean**:使用非静态工厂方法来创建 Bean 实例。 - **Bean的标识**:每个 Bean 都有一个唯一的标识符(id 或 name)。 - **Singleton 的使用与否**:默认情况下,Bean 采用 Singleton ...

    Spring 配置学习文件

    1. **PropertyPlaceholderConfigurer**:这个bean是用来加载外部属性文件`dataResources.properties`,它允许我们在配置中使用占位符 `${...}`,这些占位符会被对应的属性值替换。这样可以使得数据库连接信息等敏感...

    SSM 读取properties文件

    或者在构造函数或setter方法中使用: ```java @Component public class AppConfig { private String dbDriver; private String dbUrl; @Autowired public AppConfig(@Value("${db.driver}") String driver...

    Spring动态加载配置文件

    我们可以使用`Environment`的`getPropertySources()`方法来直接更新特定的属性源,或者使用监听器(如`ApplicationListener&lt;ContextRefreshedEvent&gt;`)在配置变化时触发必要的操作。 此外,Spring Cloud Config是...

    spring学习笔记2

    - `PropertyPlaceholderConfigurer`:用于解析属性占位符,如`${property}`,将其替换为实际的属性值。 - `CustomEditorConfigurer`:允许注册自定义编辑器,用于将字符串转换为特定类型的数据。 3. **事件处理**...

    ssh连接两个数据库

    - **PropertyPlaceholderConfigurer**: 用于处理属性占位符,自动替换配置文件中的属性值。 - `systemPropertiesModeName`: 设置系统属性模式。 - `ignoreResourceNotFound`: 忽略未找到资源时的异常。 - `...

    c3p0用法步骤

    标题:"c3p0用法步骤" 描述:"这是我学习过程中积累的学习笔记,希望对大家有用" 标签:"c3p0" 知识点详述: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC连接池的特性,如:自动重连、自动...

    说说在Spring中如何引用外部属性文件的方法

    除了使用 PropertyPlaceholderConfigurer 之外,我们还可以使用 context 命名空间来定义属性文件,相对于 PropertyPlaceholderConfigurer 的配置方式,这种方式更优雅。 ``` &lt;context:property-placeholder location...

    java 获取properties的几种方式(csdn)————程序.pdf

    以下是一些主要的获取Properties的方法: 1. **通过PropertyPlaceholderConfigurer加载配置** Spring提供了`PropertyPlaceholderConfigurer`类,它可以将Properties文件中的值注入到Bean的属性中。在XML配置文件中...

    spring 配置文件 归类

    - `init-method`: 在bean实例化后,可以指定一个初始化方法,例如`init()`,Spring会在bean实例化并设置完属性后调用该方法。 - `dependency-check`: 如果设置了`dependency-check="true"`,Spring会检查所有依赖的...

    spring-reference

    本书《spring-reference》作为深入学习Spring框架的指南,对Spring的各项特性和使用场景进行了详尽的介绍。 #### 二、Spring 深入参考知识点详解 ##### 2.1 Inversion of Control / Dependency Injection (IoC/DI)...

    spring-reference.pdf

    二、Spring框架的使用场景 Spring框架适用于多种场景,包括但不限于: 1. **Web开发**:利用Spring MVC处理HTTP请求,进行前端和后端的分离。 2. **企业级应用**:通过Spring的事务管理、数据访问等功能,简化复杂的...

    spring-reference1.2.pdf

    - **获取FactoryBean**:可以使用特殊的方法来获取FactoryBean本身,而不是它的产品。 - **使用BeanPostProcessors自定义Bean**:BeanPostProcessor接口允许开发者自定义Bean的初始化过程。 #### 3.7 使用...

    spring4.0引用properties

    接下来,为了在Spring 4.0中引用这些属性,我们需要配置一个`PropertyPlaceholderConfigurer`或使用`@ConfigurationProperties`注解。`PropertyPlaceholderConfigurer`是Spring早期版本中用于注入properties文件中值...

Global site tag (gtag.js) - Google Analytics