﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大鱼-随笔分类-spring</title><link>http://www.blogjava.net/luluyanglu/category/48802.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 06 Jun 2011 14:50:27 GMT</lastBuildDate><pubDate>Mon, 06 Jun 2011 14:50:27 GMT</pubDate><ttl>60</ttl><item><title>Spring事务配置的五种方式 </title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 14:11:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351829.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351829.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前段时间对Spring的事务配置做了比较深入的研究，在此之间对Spring的事务配置虽说也配置过，但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清，还是比较好掌握的。 &nbsp;&nbsp;&nbsp; 总结如下：&nbsp;&nbsp;&nbsp; Spring配置文件中关于事务配置总是由三个组成部分，分别是DataSource、Transaction...&nbsp;&nbsp;<a href='http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html'>阅读全文</a><img src ="http://www.blogjava.net/luluyanglu/aggbug/351829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 22:11 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring中连接池的配置</title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351828.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351828.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351828.html</trackback:ping><description><![CDATA[在默认通过myeclipse生成的配置里，spring使用的是apache的dbcp连接池 
<p>　　&lt;bean id="dataSource"</p>
<p>　　class="org.apache.commons.dbcp.BasicDataSource"&gt;</p>
<p>　　&lt;property name="driverClassName"</p>
<p>　　value="com.mysql.jdbc.Driver"&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="url"</p>
<p>　　value="jdbc:mysql://localhost:3306/mysql"&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="username" value="root"&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="password" value="root"&gt;&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　如果改为C3P0则为：</p>
<p>　　&lt;bean id="propertyConfigurer"</p>
<p>　　class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;</p>
<p>　　&lt;property name="location"&gt;</p>
<p>　　&lt;value&gt;classpath:jdbc.properties&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"&gt;</p>
<p>　　&lt;property name="driverClass" value="com.mysql.jdbc.Driver" /&gt;</p>
<p>　　&lt;property name="jdbcUrl" value="${jdbc.url}" /&gt;</p>
<p>　　&lt;property name="user" value="${jdbc.username}" /&gt;</p>
<p>　　&lt;property name="password" value="${jdbc.password}" /&gt;</p>
<p>　　&lt;property name="autoCommitOnClose" value="true"/&gt;</p>
<p>　　&lt;property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/&gt;</p>
<p>　　&lt;property name="initialPoolSize" value="${cpool.minPoolSize}"/&gt;</p>
<p>　　&lt;property name="minPoolSize" value="${cpool.minPoolSize}"/&gt;</p>
<p>　　&lt;property name="maxPoolSize" value="${cpool.maxPoolSize}"/&gt;</p>
<p>　　&lt;property name="maxIdleTime" value="${cpool.maxIdleTime}"/&gt;</p>
<p>　　&lt;property name="acquireIncrement" value="${cpool.acquireIncrement}"/&gt;</p>
<p>　　&lt;property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　jdbc.properties：</p>
<p>　　# Database URL</p>
<p>　　jdbc.url=jdbc:mysql://192.168.0.25"3306/db</p>
<p>　　# Database login information</p>
<p>　　jdbc.username=root</p>
<p>　　jdbc.password=</p>
<p>　　# Time to wait for an open connection before timing out</p>
<p>　　# (in milliseconds)</p>
<p>　　cpool.checkoutTimeout=5000</p>
<p>　　# Connection pool size</p>
<p>　　cpool.minPoolSize=5</p>
<p>　　cpool.maxPoolSize=40</p>
<p>　　# How long to keep unused connections around(in seconds)</p>
<p>　　# Note: MySQL times out idle connections after 8 hours(28,800 seconds)</p>
<p>　　# so ensure this value is below MySQL idle timeout</p>
<p>　　cpool.maxIdleTime=25200</p>
<p>　　# How long to hang on to excess unused connections after traffic spike</p>
<p>　　# (in seconds)</p>
<p>　　cpool.maxIdleTimeExcessConnections=1800</p>
<p>　　# Acquiring new connections is slow, so eagerly retrieve extra connections</p>
<p>　　# when current pool size is reached</p>
<p>　　cpool.acquireIncrement=5</p>
<p>　　或者将上面的3部分写成一个：</p>
<p>　　&lt;bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;</p>
<p>　　&lt;property name="driverClass"&gt;</p>
<p>　　&lt;value&gt;${jdbc.driverClassName}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="jdbcUrl"&gt;</p>
<p>　　&lt;value&gt;${jdbc.url}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="user"&gt;</p>
<p>　　&lt;value&gt;${jdbc.username}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="password"&gt;</p>
<p>　　&lt;value&gt;${jdbc.password}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="initialPoolSize"&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="minPoolSize"&gt;&lt;value&gt;5&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxPoolSize"&gt;&lt;value&gt;30&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="acquireIncrement"&gt;&lt;value&gt;5&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxIdleTime"&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxStatements"&gt;&lt;value&gt;0&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p><br />如果使用的是受管理的J2EE<a class="channel_keylink" href="http://server.chinaitlab.com/" target="_blank">服务器</a>，则在spring中配置为JNDI连接： 
<p>　　&lt;bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;</p>
<p>　　&lt;property name="jndiName"&gt;</p>
<p>　　&lt;value&gt;java:comp/env/jndi/xxx&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　如果在应用里有独自使用hibernate，则在spring中配置hibernate连接池，使用C3P0如下：</p>
<p>　　&lt;bean&nbsp;&nbsp; id="DataSource"</p>
<p>　　class="org.apache.commons.dbcp.BasicDataSource"&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="driverClassName"&gt;</p>
<p>　　&lt;value&gt;oracle.jdbc.driver.<a class="channel_keylink" href="http://oracle.chinaitlab.com/" target="_blank">Oracle</a>Driver&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="url"&gt;</p>
<p>　　&lt;value&gt;jdbc:oracle:thin:@172.16.20.241:1521:dbsvr&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="username"&gt;</p>
<p>　　&lt;value&gt;hl3000&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="password"&gt;</p>
<p>　　&lt;value&gt;hldw3101&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　&lt;bean&nbsp;&nbsp; id="SessionFactory"</p>
<p>　　class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="dataSource"&gt;</p>
<p>　　&lt;ref&nbsp;&nbsp; bean="DataSource"&nbsp;&nbsp; /&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="hibernateProperties"&gt;</p>
<p>　　&lt;props&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.dialect"&gt;org.hibernate.dialect.<a class="channel_keylink" href="http://oracle.chinaitlab.com/" target="_blank">Oracle</a>Dialect&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.show_sql"&gt;true&lt;/prop&gt;</p>
<p>　　&lt;!--&nbsp;&nbsp; C3P0连接池配置&nbsp;&nbsp; --&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.connection.provider_class"&gt;org.hibernate.connection.C3P0ConnectionProvider&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.max_size"&gt;20&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.min_size"&gt;5&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.timeout"&gt;120&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.max_statements"&gt;100&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.idle_test_period"&gt;120&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.acquire_increment"&gt;2&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="myeclipse.connection.profile"&gt;hl3000&lt;/prop&gt;</p>
<p>　　&lt;/props&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="mappingResources"&gt;</p>
<p>　　&lt;list&gt;</p>
<p>　　&lt;value&gt;com/hl3000/DBLogic/POJO/PermUserAccount.hbm.xml&lt;/value&gt;</p>
<p>　　&lt;/list&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　spring中配置独立使用hibernate时使用jndi的配置：</p>
<p>　　hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect</p>
<p>　　hibernate.connection.datasource=java:comp/env/jdbc/SAMPLEDB</p>
<p>　　hibernate.show_sql=true</p>
<p>　　如果是使用不受管理的Servlet容器如Tomcat，也可以使用jndi的方式配置，需要在tomcat中配置数据源，在server.xml中增改大致如下：</p>
<p>　　&lt;Resource name="jdbc/testDb" auth="Container"</p>
<p>　　type="javax.sql.DataSource"/&gt;</p>
<p>　　&lt;ResourceParams name="jdbc/testDB"&gt;\\数据源的名称</p>
<p>　　&lt;parameter&gt;&lt;name&gt;username&lt;/name&gt;&lt;value&gt;root&lt;/value&gt;&lt;/parameter&gt;数据库的名称</p>
<p>　　&lt;parameter&gt;&lt;name&gt;password&lt;/name&gt;&lt;value&gt;password&lt;/value&gt;&lt;/parameter&gt;数据库密码</p>
<p>　　&lt;parameter&gt;&lt;name&gt;driverClassName&lt;/name&gt;</p>
<p>　　&lt;value&gt;org.gjt.mm.mysql.Driver&lt;/value&gt;&lt;/parameter&gt;\\要加载的驱动</p>
<p>　　&lt;parameter&gt;&lt;name&gt;url&lt;/name&gt;</p>
<p>　　&lt;value&gt;jdbc:mysql://172.20.0.73/rk?&lt;/value&gt;&lt;/parameter&gt;\\要连接的URL</p>
<p>　　&lt;/ResourceParams&gt;</p> <img src ="http://www.blogjava.net/luluyanglu/aggbug/351828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 22:02 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>