Spring的学习-day04

Spring的学习-day04

1.applicationContext.xml中的配置

  • 基于注解的连接池

    jdbc.user=root
    jdbc.password=root
    jdbc.jdbcUrl=jdbc:mysql://localhost:3306/online-test
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.maxPoolSize=10
    jdbc.minPoolSize=5
    jdbc.initialPoolSize=5
    
    <!-- 扫描外部文件 -->
    <context:property-placeholder location="classpath:db.properties"/>
    
    <!-- 开启扫描注解 -->
    <context:component-scan base-package="cn.itheima"/>
    
    <!-- 配置数据源(即连接池) -->
    <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
    	<property name="user" value="${jdbc.user}"></property>
    	<property name="password" value="${jdbc.password}"></property>
    	<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
    	<property name="driverClass" value="${jdbc.driverClass}"></property>
    	<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
    	<property name="minPoolSize" value="${jdbc.minPoolSize}"></property>
    	<property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property>
    </bean>
    
  • 基于注解的事务管理

     <!-- 1.配置事务管理器  -->
    <bean class="org.springframework.jdbc.datasource.init.DataSourceInitializer" id="transactionManager">
    	<property name="dataSource" ref="dataSource"></property>
    </bean>
     
     <!-- 2.开启注解事务支持,默认引用的transaction-manager是transactionManager -->
     <tx:annotation-driven transaction-manager="transactionManager"/>
     
     <!-- 注解完成事务详解:@Transaction注解 ,该注解可用加在方法上,也可以加在类上
     		@Transaction的详解:
     			(1)propagation属性:用来设置事务的传播行为
     			   事务的传播行为:一个方法运行在一个开启了事务的方法中时,当前方法是使用原有的事务
     			   还是开启新的事务?这就叫事务的传播行为
     			 propagation的默认值为:Propagation.REQUIRED(默认使用现有的事务)
     			 propagation的值:Propagation.REQUIRED_NEW(不使用现有的事务,而开启自身的事务)
     			(2)isolation:用来设置事务的隔离级别
     			   -REPEATABLE_READ:可重复读,MySql默认
     			   -READ_COMMITTED:读已提交,Oracle默认
     			   总结:一般使用READ_COMMITTED
     			(3)rollbackFor:遇到什么异常回滚,值是异常的类型
     			   rollbackForClassName:遇到什么异常回滚,值是异常的名字
     			   noRollbackFor:设置不回滚,值是异常的类型
     			   noRollbackForClassName:设置不回滚,值是异常的名字
     			(4)readonly:设置只读属性,通常情况下如果是查询的操作,该属性
     			设置readonly为true,如果不是可用设置readonly为false   
     			(5)timeout:用来设置超时的时间,单位为秒
      -->
    
  • 基于xml的事务管理

    <!-- 3.配置事务管理类 -->
    <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
    	<property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 4.配置事务通知 -->
    <tx:advice transaction-manager="transactionManager" id="txAdvice">
    	<tx:attributes>
    		<!-- 配置方法对应的隔离级别以及事务的传播行为 -->
    		<tx:method name="save" isolation="READ_COMMITTED" propagation="REQUIRED"/>
    	</tx:attributes>
    </tx:advice>
    
    <!-- 5.配置切入点 -->
    <aop:config>
    	<aop:pointcut expression="execution(* cn.itheima.transaction.*.*(..))"                  id="pointcut"/>
    	<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
    </aop:config>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值