Spring中配置DataSource的六种⽅式
第⼀种:l
Xml代码
1. <bean id="dataSource" class="org.apachemons.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>
第⼆种:l
<bean id="mappings"
Xml代码
1. class="org.springframework.fig.PropertyPlaceholderConfigurer">
2. <property name="locations" value="classpath:jdbc.properties"></property>
3. </bean>
4. <bean id="dataSource" class="org.apachemons.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⽂件,⾥⾯的内容为如下:
Xml代码
1. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
2. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
3. jdbc.username=sa
4. jdbc.password=********
第三种:
Xml代码
1. <bean id="mappings"
2. class="org.springframework.fig.PropertyPlaceholderConfigurer">
3. <property name="locations" value="classpath:jdbc.properties"></property>
4. </bean>
5. <bean id="dataSource" class="org.apachemons.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.
13. <context:property-placeholder location="classpath:jdbc.properties" />在src⽂件夹⾥新建⼀个jdbc.properties⽂件,⾥⾯的内容为如
下:
14. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
15. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
16. jdbc.username=sa
17. jdbc.password=********
其中第⼆种与第三种类似,只是指定配置⽂件的⽅法不⼀样。
第四种:
Xml代码
1. <bean id="mappings"
2. class="org.springframework.fig.PropertyPlaceholderConfigurer">
3.
4. <!-- typed as a java.util.Properties -->
5. <property name="properties">
6. <value>
7. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
8. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring
9. jdbc.username=sa
10. jdbc.password=********
11. </value>
12. </property>
13. </bean>
14.
15. <bean id="dataSource" class="org.apachemons.dbcp.BasicDataSource"
16. destroy-method="close">
17. <property name="driverClassName" value="${jdbc.driverClassName}" />
18. <property name="url" value="${jdbc.url}" />
19. <property name="username" value="${jdbc.username}" />
20. <property name="password" value="${jdbc.password}" />
21. </bean>
第五种:
Xml代码
1. l
spring怎么读取配置2. <bean id="myDataSource" class="org.apachemons.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="********"/>
再加上命名空间:
Xml代码
1. xmlns:p="/schema/p"
性能参数要根据实际情况测试得来的数据确定如何配置。
转⾃:www.cppblog/fenglin/articles/130494.html
第六种,在⽹上看到
Spring中提供了⼀种简便的⽅式就是context:property-placeholder/元素
只需要在spring的配置⽂件⾥添加⼀句
Xml代码
1. <context:property-placeholder location="classpath:jdbc.properties"/>
即可,这⾥location值为参数配置⽂件的位置,参数配置⽂件通常放在src⽬录下,⽽参数配置⽂件的格式跟java通⽤的参数配置⽂件相同,即键值对的形式,例如:
#jdbc配置
配置⽂件代码
1. test.jdbc.sql.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:
Java代码
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。
Properties代码
1. db.username=scott
2. db.password=tiger
如下内容摘⾃l。正常情况下,在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}等类似信息。
Java代码
1. <bean id="propertyPlaceholderConfigurer"
2. class="org.springframework.fig.
3. PropertyPlaceholderConfigurer">
4. <property name="locations">
5. <list>
6. <value>userinfo.properties</value>
7. </list>
8. </property>
9. </bean>
10.
11. <bean name="userInfo" class="test.UserInfo">
12. <property name="username" value="${db.username}"/>
13. <property name="password" value="${db.password}"/>
14. </bean>
通过运⾏并分析PropertyPlaceholderConfigurerDemo⽰例应⽤,开发者能够深⼊理解PropertyPlaceholderConfigurer。为简化PropertyPlaceholderConfigurer的使⽤,Spring提供了<context:property-placeholder/>元素。下⾯给出了配置⽰例,启⽤它后,开发者便不⽤配置PropertyPlaceholderConfigurer对象了。
<context:property-placeholder location="userinfo.properties"/>
PropertyPlaceholderConfigurer内置的功能⾮常丰富,如果它未到${xxx}中定义的xxx键,它还会去JVM系统属性
(Property())和环境变量(v())中寻。通过启⽤systemPropertiesMode和searchSystemEnvironment属性,开发者能够控制这⼀⾏为。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论