用法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 的使用 PropertyPlaceholderConfigurer 是 ...基本使用方法 ---------- 使用 PropertyPlaceholderConfigurer 需要首先在 Spring 配置文件中定义一个 bean,例如: ```xml ...
下面我们将详细探讨`PropertyPlaceholderConfigurer`的工作原理、使用方法以及其在实际开发中的应用。 `PropertyPlaceholderConfigurer`是Spring提供的一个Bean工厂后处理器,它的主要任务是在Spring容器初始化Bean...
以上就是关于"Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取"的详细解释,涵盖了Spring的配置处理、ZooKeeper的使用以及两者结合的实现过程。理解并掌握这一技术,有助于提升...
`PropertyPlaceholderConfigurer`允许自定义属性解析逻辑,比如通过实现`PropertySourcesPlaceholderConfigurer`并覆盖`resolvePlaceholder`方法。 8. **安全考虑**: 尽管使用Property Placeholder可以方便地...
### 基本使用方法 首先,来看一下如何使用`PropertyPlaceholderConfigurer`: ```xml class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <value>classpath:/spring/include/...
- **通过实例工厂方法创建 Bean**:使用非静态工厂方法来创建 Bean 实例。 - **Bean的标识**:每个 Bean 都有一个唯一的标识符(id 或 name)。 - **Singleton 的使用与否**:默认情况下,Bean 采用 Singleton ...
1. **PropertyPlaceholderConfigurer**:这个bean是用来加载外部属性文件`dataResources.properties`,它允许我们在配置中使用占位符 `${...}`,这些占位符会被对应的属性值替换。这样可以使得数据库连接信息等敏感...
或者在构造函数或setter方法中使用: ```java @Component public class AppConfig { private String dbDriver; private String dbUrl; @Autowired public AppConfig(@Value("${db.driver}") String driver...
我们可以使用`Environment`的`getPropertySources()`方法来直接更新特定的属性源,或者使用监听器(如`ApplicationListener<ContextRefreshedEvent>`)在配置变化时触发必要的操作。 此外,Spring Cloud Config是...
- `PropertyPlaceholderConfigurer`:用于解析属性占位符,如`${property}`,将其替换为实际的属性值。 - `CustomEditorConfigurer`:允许注册自定义编辑器,用于将字符串转换为特定类型的数据。 3. **事件处理**...
- **PropertyPlaceholderConfigurer**: 用于处理属性占位符,自动替换配置文件中的属性值。 - `systemPropertiesModeName`: 设置系统属性模式。 - `ignoreResourceNotFound`: 忽略未找到资源时的异常。 - `...
标题:"c3p0用法步骤" 描述:"这是我学习过程中积累的学习笔记,希望对大家有用" 标签:"c3p0" 知识点详述: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC连接池的特性,如:自动重连、自动...
除了使用 PropertyPlaceholderConfigurer 之外,我们还可以使用 context 命名空间来定义属性文件,相对于 PropertyPlaceholderConfigurer 的配置方式,这种方式更优雅。 ``` <context:property-placeholder location...
以下是一些主要的获取Properties的方法: 1. **通过PropertyPlaceholderConfigurer加载配置** Spring提供了`PropertyPlaceholderConfigurer`类,它可以将Properties文件中的值注入到Bean的属性中。在XML配置文件中...
- `init-method`: 在bean实例化后,可以指定一个初始化方法,例如`init()`,Spring会在bean实例化并设置完属性后调用该方法。 - `dependency-check`: 如果设置了`dependency-check="true"`,Spring会检查所有依赖的...
本书《spring-reference》作为深入学习Spring框架的指南,对Spring的各项特性和使用场景进行了详尽的介绍。 #### 二、Spring 深入参考知识点详解 ##### 2.1 Inversion of Control / Dependency Injection (IoC/DI)...
二、Spring框架的使用场景 Spring框架适用于多种场景,包括但不限于: 1. **Web开发**:利用Spring MVC处理HTTP请求,进行前端和后端的分离。 2. **企业级应用**:通过Spring的事务管理、数据访问等功能,简化复杂的...
- **获取FactoryBean**:可以使用特殊的方法来获取FactoryBean本身,而不是它的产品。 - **使用BeanPostProcessors自定义Bean**:BeanPostProcessor接口允许开发者自定义Bean的初始化过程。 #### 3.7 使用...
接下来,为了在Spring 4.0中引用这些属性,我们需要配置一个`PropertyPlaceholderConfigurer`或使用`@ConfigurationProperties`注解。`PropertyPlaceholderConfigurer`是Spring早期版本中用于注入properties文件中值...