org.springframework.transaction.annotation.Transactional.readOnly()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(4.2k)|赞(0)|评价(0)|浏览(112)

本文整理了Java中org.springframework.transaction.annotation.Transactional.readOnly()方法的一些代码示例,展示了Transactional.readOnly()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Transactional.readOnly()方法的具体详情如下:
包路径:org.springframework.transaction.annotation.Transactional
类名称:Transactional
方法名:readOnly

Transactional.readOnly介绍

暂无

代码示例

代码示例来源:origin: com.github.1991wangliang/lorne-tx-core

public void setTransactional(Transactional transactional) {
    this.transactional = transactional;

    //set readOnly
    if(transactional==null){
      //没有配置事务注解的时候当做只读来处理
      readOnly = true;
    }else{
      readOnly = transactional.readOnly();
    }
  }
}

代码示例来源:origin: 1991wangliang/tx-lcn

public void setTransactional(Transactional transactional) {
    this.transactional = transactional;

    //set readOnly
    if(transactional==null){
      //没有配置事务注解的时候当做只读来处理
      readOnly = true;
    }else{
      readOnly = transactional.readOnly();
    }
  }
}

代码示例来源:origin: io.github.jujube-framework/jujube-jdbc

/**
   * 判断是否只读方法
   *
   * @param method 执行方法
   * @return 当前方法是否只读
   */
  private boolean isChoiceReadDB(Method method) {
    boolean result = true;
    Transactional transactionalAnno = AnnotationUtils.findAnnotation(method, Transactional.class);
    // 如果是事务方法,则false
    if (transactionalAnno != null && !transactionalAnno.readOnly()) {
      result = false;
    }
    log.debug("经过方法{},结果:{}", method, result);
    return result;
  }
}

代码示例来源:origin: songxinjianqwe/EShop-SOA

@Before("@annotation(transaction)")
  public void switchDataSourceType(Transactional transaction) {
    if(transaction.readOnly()){
      DataSourceContextHolder.read();
      log.info("dataSource切换到:Read");
    }else{
      DataSourceContextHolder.write();
      log.info("dataSource切换到:Write");
    }
  }
}

代码示例来源:origin: org.apache.syncope.core/syncope-core-logic

/**
 * Resolves stored bean (if existing) referred by the given CUD method.
 * Read-only methods will be unresolved for performance reasons.
 *
 * @param method method.
 * @param args method arguments.
 * @return referred stored bean.
 * @throws UnresolvedReferenceException in case of failures, read-only methods and unresolved bean.
 */
public T resolveBeanReference(final Method method, final Object... args) throws UnresolvedReferenceException {
  final Transactional transactional = method.getAnnotation(Transactional.class);
  if (transactional != null && transactional.readOnly()) {
    throw new UnresolvedReferenceException();
  }
  return resolveReference(method, args);
}

代码示例来源:origin: 3zamn/kingMicro

/**
 * 配置前置通知,使用在方法aspect()上注册的切入点
 */
@Before("aspect()")
public void before(JoinPoint point) {
  Object object = point.getTarget();
//	 logger.info(point.getSignature().toString());
  String methodName = point.getSignature().getName();
  Class<?>[] parameterTypes = ((MethodSignature)point.getSignature()).getMethod().getParameterTypes();
  Method method;
  try {
    method = object.getClass().getMethod(methodName, parameterTypes);
     Transactional transactional = method.getAnnotation(Transactional.class);
     if(transactional!=null){
       boolean readOnly = transactional.readOnly();
       if(readOnly){
         HandleDataSource.read();
    //		 logger.info("切换--读库");
       }
     }else{
       HandleDataSource.write();
    //	 logger.info("切换--写库");
     }            
  } catch (NoSuchMethodException e) {
    logger.error(e.getMessage());
  } catch (SecurityException e) {
    logger.error(e.getMessage());
  }
  }

代码示例来源:origin: com.butor/butor-web

TransactionTemplate trxTpl = new TransactionTemplate(transactionManager);
trxTpl.setIsolationLevel(trx.isolation().value());
trxTpl.setReadOnly(trx.readOnly());
trxTpl.setPropagationBehavior(trx.propagation().value());
trxTpl.setTimeout(trx.timeout());

代码示例来源:origin: com.mysema.rdf/rdfbean-guice

private RDFBeanTransaction doBegin(Session session, Transactional transactional) {
  RDFBeanTransaction txn = session.beginTransaction(
      transactional.readOnly(),
      transactional.timeout(),
      transactional.isolation().value());
  session.setFlushMode(FlushMode.COMMIT);
  return txn;
}

代码示例来源:origin: com.butor/butor-web

TransactionTemplate trxTpl = new TransactionTemplate(transactionManager);
trxTpl.setIsolationLevel(trx.isolation().value());
trxTpl.setReadOnly(trx.readOnly());
trxTpl.setPropagationBehavior(trx.propagation().value());
trxTpl.setTimeout(trx.timeout());

代码示例来源:origin: com.butor/butor-web

TransactionTemplate trxTpl = new TransactionTemplate(transactionManager);
trxTpl.setIsolationLevel(trx.isolation().value());
trxTpl.setReadOnly(trx.readOnly());
trxTpl.setPropagationBehavior(trx.propagation().value());
trxTpl.setTimeout(trx.timeout());

相关文章