面试总结

8 篇文章 0 订阅
3 篇文章 0 订阅

1技术上

  数据事物管理 SpringMvc

今天面试官 问我的时候 结合实际的项目 我这边的事物管理 是基于XML

spring事务管理

事务,简单的说,就是对于一个操作来说,要么都成功,要么都失败,这样可以保证数据的一致性,在spring mvc中也可以配置相应的事务管理器,有两种实现方法:XML和注解。

XML配置方式实现事务

在spring配置文件中,初始化一个事务管理器,同时将数据源注入:

[html]  view plain  copy
  1. <span style="font-size:18px;"><bean id="transactionManager"  
  2.           class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  3.         <property name="dataSource" ref="druidDataSource" />  
  4.     </bean></span>  
定义事务的基本属性:

[html]  view plain  copy
  1. <span style="font-size:18px;"><tx:advice id="txAdvice" transaction-manager="transactionManager">  
  2.         <tx:attributes>  
  3.             <tx:method name="find*" read-only="true" />  
  4.             <tx:method name="update*" propagation="REQUIRED" />  
  5.             <tx:method name="delete*" propagation="REQUIRED" />  
  6.             <tx:method name="save*" propagation="REQUIRED" />  
  7.         </tx:attributes>  
  8.     </tx:advice></span>  
transaction-manager为上面定义的事务管理器

name属性定义在哪些方法上调用;

propagation定义了该事务的传播属性,默认值为REQUIRED,作用是“支持当前事务,如果当前没有事务,就新建一个事务,即只有一个事务,出现异常时该事务内的所有操作都会回滚”,其他6个值可在api上查到,一般选择默认值;

read-only作用是“只接受只读操作”,默认值为false,若配置为true,当配置的方法中出现对数据库的增删改时,会报异常如:Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed,适当的配置该属性可提高性能。

最后配置该事务的切面,事务配置完成:

[html]  view plain  copy
  1. <span style="font-size:18px;"><aop:config>  
  2.         <!-- 定义一个切入点 -->  
  3.         <aop:pointcut id="interceptorPointCuts"  
  4.                       expression="execution(* com.jk.service.impl.*Impl.*(..)) or execution(* com.jk.dao.*.*(..))" />  
  5.         <!-- 对切入点和事务的通知,进行适配 -->  
  6.         <aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />  
  7.     </aop:config></span>  

1  注解方式实现事务

同样的,在spring配置文件中,初始化一个事务管理器,同时将数据源注入:

[html]  view plain  copy
  1. <span style="font-size:18px;"><span style="font-size:18px;"><bean id="transactionManager"  
  2.           class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  3.         <property name="dataSource" ref="druidDataSource" />  
  4.     </bean></span></span>  

然后开启注解:

<tx:annotation-driven transaction-manager="transactionManager"/>
这样就可以在代码中使用事务的注解了,在需要事务的方法上加上,其中各属性与xml配置中的相同:

@Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception")

3 阐述项目中 的问题

  1数据量查询慢的问题

  2 数据加载

  3 redis

  4 阐述自己的一块熟悉的业务 叙述怎么完成的


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值