`

SpringMVC配置文件及数据库连接池配置

阅读更多

hibernate.properties配置文件的简单配置信息:

 

dataSource.driverClassName= com.mysql.jdbc.Driver
dataSource.username = root
dataSource.password = root
dataSource.dialect = www.tongmap.cn.utils.MySQLDialectImpl
dataSource.url = jdbc:mysql://localhost:3306/sm
dataSource.hbm2ddl.auto = update

 maven配置的jar依赖pom.xml,说明一下,native类型的jar包是我自己下载jar包后手工添加到本地仓库中的,并不是使用maven自动下载的(网络问题),使用maven下载需要把native修改为com.cloudhopper.proxool:

<!-- c3p0数据库连接池用到的jar包 -->
<dependency>
	<groupId>c3p0</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.1.1</version>
</dependency>
<!-- proxool数据库连接池用到的jar包
<dependency>
	<groupId>native</groupId>
	<artifactId>proxool</artifactId>
	<version>0.9.1</version>
</dependency>
<dependency>
	<groupId>native</groupId>
	<artifactId>proxool-cglib</artifactId>
	<version>0.9.1</version>
</dependency>
 -->
<!-- DBCP数据库连接池用到的jar包
<dependency>
	<groupId>commons-dbcp</groupId>
	<artifactId>commons-dbcp</artifactId>
	<version>1.4</version>
</dependency>
 -->

 注意:我使用的c3p0版本为0.9.1.1,所以只要一个jar包就可以了,如果使用更新版本的c3p0,会有两个jar包,以c3p0-0.9.2.1为例,会需要以下依赖:

 

<dependency>
	<groupId>com.mchange</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.2.1</version>
</dependency>
<dependency>
	<groupId>com.mchange</groupId>
	<artifactId>mchange-commons-java</artifactId>
	<version>0.2.3.4</version>
</dependency>

 applicationContext.xml文件的配置,至于更详细的大家可以在官网中查看资料,每个配置的官网我在注释中有说明:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
	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-4.0.xsd   
		   http://www.springframework.org/schema/context 
		   http://www.springframework.org/schema/context/spring-context-4.0.xsd   
		   http://www.springframework.org/schema/aop 
		   http://www.springframework.org/schema/aop/spring-aop-4.0.xsd   
		   http://www.springframework.org/schema/tx 
		   http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

	<!-- 设置使用注解的类所在的jar包 -->
	<context:component-scan base-package="www.tongmap.cn" />

	<!-- 根据类路径加载hibernate的配置文件 -->
	<context:property-placeholder location="classpath:hibernate.properties" />

	<!-- 配置项目的MySQL数据库的数据源 -->
	<!-- Spring本身也提供了一个简单的数据源实现类DriverManagerDataSource ,它位于org.springframework.jdbc.datasource包中。 -->
	<!-- 这个类实现了javax.sql.DataSource接口,但它并没有提供池化连接的机制,每次调用getConnection()获取新连接时,只是简单地创建一个新的连接。 -->
	<!-- 因此,这个数据源类比较适合在单元测试 或简单的独立应用中使用,因为它不需要额外的依赖类。 -->
	<!-- 其提供的连接没有进行池管理,当连接数到达一定的大小会出现异常。 -->
	<!-- 
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${dataSource.driverClassName}" />
		<property name="url" value="${dataSource.url}" />
		<property name="username" value="${dataSource.username}" />
		<property name="password" value="${dataSource.password}" />
	</bean>
	 -->

	<!-- c3p0式数据源和数据库连接池 -->
	<!-- 配置说明官网:http://www.mchange.com/projects/c3p0/ -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${dataSource.driverClassName}"></property>
		<property name="jdbcUrl" value="${dataSource.url}"></property>
		<property name="user" value="${dataSource.username}"></property>
		<property name="password" value="${dataSource.password}"></property>
		
		<property name="minPoolSize" value="10"></property>
		<!--初始化时获取15个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize" value="15"></property>
		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize" value="30"></property>
		<!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出
		SQLException,如设为0则无限期等待。单位毫秒。Default: 0 -->
		<property name="checkoutTimeout" value="3000"></property>
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement" value="2"></property>
		<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
		<property name="acquireRetryAttempts" value="5"></property>
		<!--两次连接间隔时间,单位毫秒。Default: 1000 -->
		<property name="acquireRetryDelay" value="1000"></property>
		<!--连接关闭时默认将所有未提交的操作回滚。Default: false -->
		<property name="autoCommitOnClose" value="false"></property>
		<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
		保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
		获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
		<property name="breakAfterAcquireFailure" value="false"></property>
		<!-- 符合JDBC标准、用于控制 PreparedStatements 数量的参数,数据源中单个连接缓存的 PreparedStatements 数量,
		与 maxStatementsPerConnection(非标准) 参数有点像 -->
		<property name="maxStatements" value="100"></property>
		<!--最大空闲时间,指定秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime" value="0"></property>
		<!--每1200秒检查所有连接池中的空闲连接。Default: 0 -->
		<property name="idleConnectionTestPeriod" value="1200"></property>
		<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->
		<property name="testConnectionOnCheckin" value="true"></property>
		<!--c3p0将建一张名为testConnection的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么 
  		属性preferredTestQuery将被忽略。你不能在这张testConnection表上进行任何操作,它将只供c3p0测试 
  		使用。Default: null--> 
		<property name="automaticTestTable" value="testConnection"></property>
	</bean>

	<!-- proxool式数据源和数据库连接池 -->
	<!-- 
	<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
		<property name="driver" value="${dataSource.driverClassName}"></property>
		<property name="driverUrl" value="${dataSource.url}"></property>
		<property name="user" value="${dataSource.username}"></property>
		<property name="password" value="${dataSource.password}"></property>
		<property name="maximumActiveTime" value="300000"></property>
		最少保持的空闲连接数
		<property name="prototypeCount" value="5"></property>
		最小连接数
		<property name="minimumConnectionCount" value="2"></property>
		<property name="maximumConnectionCount" value="50"></property>
		<property name="simultaneousBuildThrottle" value="50"></property>
	</bean>
	 -->

	<!-- DBCP式数据源和数据库连接池 -->
	<!-- 配置说明官网:http://commons.apache.org/proper/commons-dbcp/configuration.html
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${dataSource.driverClassName}"></property>
		<property name="url" value="${dataSource.url}"></property>
		<property name="username" value="${dataSource.username}"></property>
		<property name="password" value="${dataSource.password}"></property>
		<property name="initialSize" value="10"></property>
		<property name="maxActive" value="30"></property>
		<property name="maxIdle" value="5"></property>
	</bean>
	 -->

	<!-- DBCP采用JNDI式数据源和数据库连接池 -->
	<!-- 
	<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName" value="java:comp/env/jdbc/zhang"></property>
	</bean>
 	-->
 	
	<!-- 配置MySQL数据库的heibenate的sessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${dataSource.dialect}</prop>
				<prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.use_sql_comments">true</prop>
			</props>
		</property>
		<!-- 扫描实体类,也就是平时所说的model -->
		<property name="packagesToScan">
			<list>
				<value>www.tongmap.cn.entity</value>
			</list>
		</property>
	</bean>
	<!-- 配置MySQL数据库的spring的事务管理 -->
	<!-- 要在 Spring 中使用 @Transactional不加参数的注释,必须在 Spring 配置文件中添加以下代码行 -->
	<bean
		class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
	<tx:annotation-driven transaction-manager="transactionManager" />
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

</beans>

 

 

分享到:
评论

相关推荐

    RESTFUL + SPRINGMVC + C3P0连接池 的完美实现

    RESTFUL + SPRINGMVC + C3P0连接池 的完美实现. 传递json数据到springmvc自动转为obj。obj传前台可直接转换为json。 rest配置文件内 修改,可同理兼容 JSON XML AMF 或其他各种。

    springMVC3.2+Hibernate4的基本配置

    本文件为一个基本的项目配置,包括springmvc的基本配置,数据库连接池(c3p0)、事务管理、缓存、拦截器的配置。部分采用xml配置,部分采用注解。

    基于Spring+SpringMVC+MyBatis的毕业设计管理系统源码+数据库

    并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目的登录认证,数据库使用的则是MySQL。 该系统可以分为三类角色:学生,教师,教务管理员。 该系统...

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    Maven-crud.zip

    • 2、引入项目依赖的jar包 • spring • springmvc • mybatis • 数据库连接池,驱动包 • 其他(jstl,servlet-api,junit) • 3、引入bootstrap前端框架 • 4、编写ssm整合的关键配置文件 • web.xml,spring,...

    叮当书城项目-叮当书城项目部署代码视频教程带源码(java毕业设计项目-java练手项目)

    jdbc.properties是对数据库连接的配置,mybatis-config.xml是对mapper.xml文件进行扫描的配置, spring.xml主要是配置组件扫描器,加载外部的properties配置文件,配置数据库连接池等等,springmvc里面是对视图解析...

    基于SpringMVC的一个web框架

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    分布式框架简介SSM组合+ springmvc+mybatis+shiro+restful+bootstrap

    开发工具 1.Eclipse IDE:采用Maven项目管理,模块化。 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。...数据库连接池:Alibaba Druid 1.0

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    6. 数据库连接池统一配置 7. Quartz定时调度任务集成(直接通过配置即可) 8. Httpclient破解验证码,登陆联通充值平台 9. 汉字、英文拆分、可以用作文档关键字搜索等。 10. Base64图片处理,支持PC,Android,...

    Organic水果蔬菜商城

    (包括Mybatis数据库配置,连接池技术,springMVC,springIOC等) 2.3项目包结构设计 3.项目具体业务代码设计 3.1Controller层(利用springMVC技术进行参数传递和任务处理转发) 3.2Service层(对于增删改进行事务...

    基于SpringBoot的婚恋网站(源码+数据库)

    4. 数据库连接池 druid ### 2.3 前端技术栈 1. html 2. css 3. jquery 4. bootstrap 5. thymeleaf ## 三 软件运行 1.安装 IDEA,maven,mysql及客户端工具 2.使用idea打开项目,配置jdk 和 maven 3.创建数据库,并...

    基于SSM开发的民宿客栈管理系统(源码+数据库)

    4. 数据库连接池 c3p0 ### 2.3 前端技术栈 1. html 2. css 3. jquery 4. jsp 5. bootstrap ## 三 软件运行 1.安装 IDEA,maven,mysql及客户端工具,tomcat 2.使用idea打开项目,配置jdk,maven,以及tomcat 3.创建...

    JAVA高并发高性能高可用高扩展架构视频教程

    高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密解密) iBATIS开源主流框架(实现半自动化hibernate) 企业实用技能之详解(眼睛横纹模式验证码防止恶意登陆) 动态页面的静态化...

    基于Spring MVC的web框架 1.1.11

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    毕业设计 大作业 管理系统

    并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目的登录认证,数据库使用的则是MySQL。 该系统可以分为三类角色:学生,教师,教务管理员。 该系统...

    基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip

    Druid(监控目的的数据库连接池),配置文件里面加密数据库密码 Freemarker:基于Java的生成html的模板引擎,用来前后端交互 Nginx:反向代理服务器,Nginx搭建支持用户头像等静态资源的访问 Spring Admin(外部监控)、...

    使用SpringBoot+AmazeUI整合框架的毕业设计管理系统

    并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目的登录认证,数据库使用的则是MySQL。 该系统可以分为三类角色:学生,教师,教务管理员。 该系统...

    基于SpringMVC+Hibernate4的考勤管理系统+.zip

    数据库连接池:C3P0 工具类 Apache fileupload 文件上传组件 Apache commons-collections 封装好的各种集合类和集合工具类 Apache commons-io Apache基金会创建并维护的Java函数库 Apache commons-logging 通用的日志...

    jeesite1.2.7 springMVC+mybatis 开源下载

    JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的...8.连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 9.工作流引擎:实现业务工单流转、在线流程设计器。

Global site tag (gtag.js) - Google Analytics