【Spring】配置数据库资源
来源:互联网 发布:2konline巅峰科比数据 编辑:程序博客网 时间:2024/06/06 16:30
(1) Spring中配置数据源bean的方式
1、通过JDBC驱动程序定义的数据源
2、 通过JNDI查找的数据源
3、 连接池的数据源
(2) 使用JNDI数据源
好处:数据源完全可以在应用程序之外进行管理。
使用<jee:jndi-lookup>元素将其装配到Spring中:
<jee:jndi-lookup id =”dataSource” jndi-name=”/jdbc/SpitterDS” resource-ref=”true”/>
说明:
jndi-name:指定JNDI中资源的名称
resource-ref:如果应用程序运行在Java应用服务器中,需要属性设置为true,这样给定的jndi-name将会自动添加“java:comp/env/”前缀(该前缀表示为JavaEE环境必须的)
通过Java配置,借助JndiObjectFactoryBean从JNDI中查找DataSource:
@Bean
public JndiObjectFactoryBean dataSource(){
JndiObjectFactoryBean jndiObjectFB = new JndiObjectFactoryBean();
jndiObjectFB.setJndiName(“jdbc/SpittrDs”);
jndiObjectFB.setProxyInterface(javax.sql.DataSource.class);
return jndiObjectFB;
}
(3) 使用数据源连接池
1、配置DBCPBasicDataSource的方式:
<bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource
p:driverClassName=”org.h2.Driver”
p:url = “jdbc:h2:tcp://localhost/~/spitter”
p:username=”sa”
p:password=””
p:initialSize=”5”
p:maxActive=”10”
” />
说明:
driverClassName:指定了JDBC驱动类的全限定类名
url:设置数据库的JDBC的URL其他配置信息:
(4) 基于JDBC驱动的数据源
Spring中,通过JDBC驱动定义数据源是最简单的配置方式,提供了三个数据源类:
DriverManagerDataSource:在每个连接请求中都会返回一个新的连接,没有池化管理。
SimpleDriverDataSource:直接使用JDBC驱动,来解决在特定环境下的类加载问题,环境包括OSGi容器。
SingleConnectionDataSource:在每个连接请求时都会返回同一个的连接,视为只有一个连接的池。
注意:综上所述,应该使用数据源连接池。
(5) 使用嵌入式的数据源(embedded database)
作为应用的一部分运行,而不是应用连接的独立数据库服务器。对于开发和测试,嵌入式数据库是很好的可选方案,每次重启应用或运行测试的时候,都能够重新填充测试数据。
<jdbc:embedded-database id="dataSource" type="H2">
<jdbc:script location="classpath:spittr/db/jdbc/schema.sql" />
<jdbc:script location="classpath:spittr/db/jdbc/test-data.sql" />
</jdbc:embedded-database>
说明:
type:表明嵌入式数据库应该是H2数据库(确保H2位于应用的类路径下)
<jdbc:script>:第一个引用了schema.sql包含了数据库中创建表的SQL,第二个引用了test-data.sql,用来将测试数据填充到数据库中
<jdbc:embedded-database>元素:暴露一个数据源,可以像使用其他的数据源来使用它。
(6) 使用profile选择数据源
需求:在某种环境下使用其中一种数据源,在另外的环境中使用不同的数据源。
在项目开发测试生产需配置不同dataSourse时,可以采用spring的profile定义多个数据源
1.在Spring配置文件中定义开发、测试环境和生产环境
<beans profile="test,develop">
<!-- 开发和测试环境 -->
</beans>
<beans profile="product">
<!-- 生产环境 -->
</beans>
2.在web.xml中, 指定使用哪种环境
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>test</param-value>
</context-param>
或者
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>spring.profiles.active</param-name>
<param-value>product</param-value>
</init-param>
</servlet>
或者
-Dspring.profiles.active="profile1,profile2"
阅读全文
2 0
- 【Spring】配置数据库资源
- JBoss配置数据库资源
- spring MVC资源过滤配置
- Spring Boot 资源加载配置
- spring mvc配置静态资源
- spring boot 配置静态资源
- 利用spring配置数据库
- Spring配置mysql数据库
- Spring 数据库配置
- spring配置连接数据库
- spring数据库配置
- spring数据库配置
- [spring-boot] 配置数据库
- 【Spring】Spring常用配置-Spring EL和资源调用
- Spring - 资源文件properties的配置
- Spring 资源文件 properties 的配置
- Spring - 资源文件properties的配置
- Spring - 资源文件properties的配置
- php学习笔记——redis扩展
- QPS与TPS简介
- 前端各个框架兼容性
- 浅谈强联通分量,双联通分量
- 计算机网络学习(1)
- 【Spring】配置数据库资源
- Ubuntu14.04 PostgreSQL卸载又重装后遇到的问题及解决方法
- 使用JDBCTemplate实现与Spring结合,方法公用
- Java基础类库——String、StringBuffer和StringBuilder类
- MySQL Group Replication 同步 or 异步?
- JNI实战一:向Native层传递一个类,并从Native层返回一个类
- 关于在做Java项目的时候如何把第三方的jar包一起打包成jar文件
- Android apk运行时错误java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient
- ScrllView嵌套RecycleView时ScrllView不随着RecycleView滑动解决方案