当前位置: 首页 > news >正文

男和男做那个视频网站好免费咨询承诺书

男和男做那个视频网站好,免费咨询承诺书,深圳网站界面设计,无锡市建设局网站了解了Spring AOP执行过程#xff0c;再看Spring事务源码其实非常简单。 首先从简单使用开始, 演示Spring事务使用过程 Xml配置#xff1a; ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema…了解了Spring AOP执行过程再看Spring事务源码其实非常简单。 首先从简单使用开始, 演示Spring事务使用过程 Xml配置 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:aophttp://www.springframework.org/schema/aopxmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd!-- 数据库连接池 --bean iddataSource classcom.alibaba.druid.pool.DruidDataSource destroy-methodcloseproperty nameurl valuejdbc:mysql:///custom_db /property nameusername valueroot /property namepassword value123456 /property namedriverClassName valuecom.mysql.jdbc.Driver //bean!-- JdbcTemplate 对象 --bean idjdbcTemplate classorg.springframework.jdbc.core.JdbcTemplateproperty namedataSource refdataSource/property/bean!-- transactionManager 对象 --bean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManagerproperty namedataSource refdataSource/property/beantx:advice idtxAdvice transaction-managertransactionManagertx:attributestx:method name* propagationREQUIRED//tx:attributes/tx:adviceaop:configaop:advisor advice-reftxAdvice pointcutexecution(* org.spring.tx.dao.*.*(..))/aop:advisor/aop:configbean iduserDao classorg.spring.tx.dao.UserDaoImplconstructor-arg index0 refjdbcTemplate/constructor-arg/bean/beans 实体类 package org.spring.tx.dto;public class UserDto {private Long id;private String UserName;public Long getId() {return id;}public void setId(Long id) {this.id id;}public String getUserName() {return UserName;}public void setUserName(String userName) {UserName userName;} } 业务Dao类 package org.spring.tx.dao;import org.spring.tx.dto.UserDto;public interface UserDao {void insert(UserDto userDto); } package org.spring.tx.dao;import org.spring.tx.dto.UserDto; import org.springframework.jdbc.core.JdbcTemplate;public class UserDaoImpl implements UserDao {//注入 JdbcTemplateprivate JdbcTemplate jdbcTemplate;public UserDaoImpl(JdbcTemplate jdbcTemplate) {this.jdbcTemplate jdbcTemplate;}Overridepublic void insert(UserDto userDto) {//创建 sql 语句String sql insert into user (username)values(?);//调用方法实现Object[] args {userDto.getUserName()};//返回影响行数int update jdbcTemplate.update(sql,args);System.out.println(user新增条数 update);//throw new RuntimeException(业务出错了!!!);} } 测试代码 package org.spring.tx;import org.spring.tx.dao.UserDao; import org.spring.tx.dto.UserDto; import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainTest {public static void main(String[] args) {ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-tx.xml);applicationContext.start();UserDao userDao applicationContext.getBean(UserDao.class);UserDto userDto new UserDto();userDto.setUserName(zhangsan);userDao.insert(userDto);applicationContext.stop();} } 执行结果 从源码角度简单分析一下 根据Spring AOP过程(参考Spring AOP源码篇二之 代理工厂ProxyFactory学习-CSDN博客  Spring AOP源码篇三之 xml配置-CSDN博客)增强工作由Advice完成而事务的Advice对应的是TransactionInterceptor. public class TransactionInterceptor extends TransactionAspectSupport implements MethodInterceptor, Serializable {public TransactionInterceptor() {}public TransactionInterceptor(PlatformTransactionManager ptm, Properties attributes) {setTransactionManager(ptm);setTransactionAttributes(attributes);}public TransactionInterceptor(PlatformTransactionManager ptm, TransactionAttributeSource tas) {setTransactionManager(ptm);setTransactionAttributeSource(tas);}//TransactionInterceptor实现了Advice(MethodInterceptor)接口增强工作由该方法完成//核心代码方法调用入口public Object invoke(final MethodInvocation invocation) throws Throwable {Class? targetClass (invocation.getThis() ! null ? AopUtils.getTargetClass(invocation.getThis()) : null);// 父类TransactionAspectSupport中方法return invokeWithinTransaction(invocation.getMethod(), targetClass, new InvocationCallback() {public Object proceedWithInvocation() throws Throwable {return invocation.proceed();}});}//---------------------------------------------------------------------// Serialization support//---------------------------------------------------------------------private void writeObject(ObjectOutputStream oos) throws IOException {// Rely on default serialization, although this class itself doesnt carry state anyway...oos.defaultWriteObject();// Deserialize superclass fields.oos.writeObject(getTransactionManagerBeanName());oos.writeObject(getTransactionManager());oos.writeObject(getTransactionAttributeSource());oos.writeObject(getBeanFactory());}private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {// Rely on default serialization, although this class itself doesnt carry state anyway...ois.defaultReadObject();// Serialize all relevant superclass fields.// Superclass cant implement Serializable because it also serves as base class// for AspectJ aspects (which are not allowed to implement Serializable)!setTransactionManagerBeanName((String) ois.readObject());setTransactionManager((PlatformTransactionManager) ois.readObject());setTransactionAttributeSource((TransactionAttributeSource) ois.readObject());setBeanFactory((BeanFactory) ois.readObject());}}
http://www.hkea.cn/news/14551438/

相关文章:

  • 佛山设计网站wordpress模板手机
  • 网站建设与开发要学什么专业临沂网站建设公司招聘
  • 建外文网站h5页面怎么制作报名页面
  • 我的世界皮肤做壁纸的网站网站建设如何销售
  • 自动建站网站源码百度推广开户联系方式
  • wordpress站群服务器义乌网站建设郭
  • 备案不关闭网站的方法php网站怎么缓存
  • 响应式网站模板怎么做仿西部数码网站
  • 万维网络(临沂网站建设)抖音小程序游戏怎么免广告拿奖励
  • 英文站友情链接去哪里查备案个人网站
  • 建站平台和网站建设的区别鹤山网站建设
  • thinkphp建站网址国际新闻最新消息十条摘抄
  • 设计比较好的企业网站中国工程建设协会网站
  • 内蒙能源建设集团网站天猫商城官网下载
  • 网站开发经验建展机械有限公司
  • 杭州百度网站建设2019年开公司做网站可以吗
  • 建设机械网站资讯广西建设网桂建云网站
  • 淘宝网站设计模板下载医院网站案例
  • python做的网站源码建筑工程网站免费
  • 英文案例网站龙岩做网站改版找哪家公司
  • 毕业设计答辩网站开发原理个人网站怎么建立要多少钱
  • 网站数据库建设access网站开发 定制 多少 钱
  • 泰安微网站建设网站如何调用百度地图
  • 高端网站建设 选择磐石网络ppt模板简约
  • 用wordpress做站群wordpress突然很慢
  • 龙岩网站建设平台网站后台管理系统论文
  • 网站里的课程配图怎么做html5微网站
  • 天宫院网站建设湖南长沙设计公司
  • 9e做网站h5源码
  • 设计网站中企动力优昆明网站制作的教程