SSH框架三种数据源的配置

applicationContext.xml 中数据源有三种配置方式:
一:原始方式
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 指定数据库驱动-->
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<!-- 指定连接数据库的URL-->
<property name="url"><value>jdbc:mysql://wonder:3306/j2ee</value></property>
<!-- root为数据库的用户名-->
<property name="username"><value>root</value></property>
<!-- pass为数据库密码-->
<property name="password"><value>pass</value></property>
</bean>
二:ComboPooledDataSource 注:需导入c3p0-0.9.0.2.jar
<bean id="dataSource"
      class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:oracle:thin:@192.168.20.200:1521:et361</value>
</property>
<property name="user"><value>test</value></property>
<property name="password"><value>123456</value></property>  
        <property name="minPoolSize"><value>20</value></property>  
        <property name="maxPoolSize"><value>100</value></property>  
        <property name="initialPoolSize"><value>10</value></property>  
        <property name="maxIdleTime"><value>60</value></property>  
        <property name="acquireIncrement"><value>10</value></property>
<property name="maxStatements"><value>0</value></property>  
        <property name="idleConnectionTestPeriod"><value>60</value></property>  
        <property name="acquireRetryAttempts"><value>30</value></property>
<property name="breakAfterAcquireFailure"><value>true</value></property>
<property name="testConnectionOnCheckout"><value>false</value></property>
</bean>
三:DruidDataSource 注:需导入druid-0.2.23.jar
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
     init-method="init" destroy-method="close">
<property name="url"              value="jdbc:oracle:thin:@192.168.20.200:1521:et361" />
<property name="username" value="NEWET361" />  
<property name="filters" value="config,stat" />
        <property name="password" value="123456" /> 
  <property name="initialSize" value="1" />
        <property name="minIdle" value="1" /> 
        <property name="maxActive" value="20" /> 
        <property name="maxWait" value="60000" />
        <property name="timeBetweenEvictionRunsMillis" value="60000" />  
        <property name="minEvictableIdleTimeMillis" value="300000" />  
        <property name="validationQuery" value="SELECT 'x'" /> 
        <property name="testWhileIdle" value="true" /> 
        <property name="testOnBorrow" value="false" /> 
        <property name="testOnReturn" value="false" />
        <property name="poolPreparedStatements" value="true" />    
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />      
          
</bean>

以下就是一些常见的配置:
<!-- sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="mappingResources">
<list>
<!-- 存放 POJO配置文件  -->
<value>com/omhy/common/model/entity/Flights.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.query.substitutions">true 1, false 0, yes 'Y', no 'N'</prop>
<prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_structured_entries">false</prop>
<prop key="hibernate.max_fetch_depth">0</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
<property name="dataSource"> <ref bean="dataSource" /></property>
</bean>
<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
<property name="dataSource"><ref bean="dataSource" /></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory"><ref bean="sessionFactory" /></property>
<property name="jdbcExceptionTranslator">
             <ref bean="jdbcExceptionTranslator" />
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
     <ref local="sessionFactory" />
</property>
</bean>
<!-- 事务配置 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="search*" read-only="true" />
<tx:method name="save*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="update*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="delete*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="create*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="do*" propagation="REQUIRED" rollback-for="Exception" />
<tx:method name="distribute*" propagation="REQUIRED"
rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<!-- end 事务配置 -->
<!-- 切面配置 -->
<aop:config>
<aop:pointcut id="etAop" expression="execution(* com.omhy.*.model.service.*.*(..)) or execution(* com.omhy.*.model.dao.*.*(..)) " />
     <aop:advisor advice-ref="txAdvice" pointcut-ref="etAop" />
</aop:config>
<aop:config proxy-target-class="true">
<aop:pointcut id="etAction" expression="execution(* com.omhy.*.action.*.*(..)) and !execution(* com.omhy.*.action.*.validate*(..)) and !execution(* com.omhy.*.action.*.*dwr(..))" />
     <aop:advisor advice-ref="actionAdvice" pointcut-ref="etAction" />
</aop:config>
<!-- end 切面配置 -->
<!-- 通知配置 -->
<bean id="actionAdvice" class="com.omhy.advice.ActionAdvice" scope="request"></bean>


<!-- 各application成员配置  -->
<import resource="application-test.xml"/>

猜你喜欢

转载自vicky-luo.iteye.com/blog/2065898