当前位置: 首页>>代码示例>>Java>>正文


Java ProceedingJoinPoint.proceed方法代码示例

本文整理汇总了Java中org.aspectj.lang.ProceedingJoinPoint.proceed方法的典型用法代码示例。如果您正苦于以下问题:Java ProceedingJoinPoint.proceed方法的具体用法?Java ProceedingJoinPoint.proceed怎么用?Java ProceedingJoinPoint.proceed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.aspectj.lang.ProceedingJoinPoint的用法示例。


在下文中一共展示了ProceedingJoinPoint.proceed方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: aroundAdvise

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
public int aroundAdvise(ProceedingJoinPoint joinPoint) {
	long start_time=System.currentTimeMillis();
	logger.info("around advise before "+joinPoint.getSignature() 
			+" B.L.method getting invoked");
	Integer o=null;
	
	try {
		o=(Integer)joinPoint.proceed();
		logger.info("number of rows affected:-"+o);
	} catch (Throwable e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
       
	logger.info("around advise after "+joinPoint.getSignature()+
			" B.L.method getting invoked");
	long end_time=System.currentTimeMillis();
	logger.info(joinPoint.getSignature()+" took " + 
	(end_time-start_time)+" to complete");
	
	return o.intValue();
}
 
开发者ID:PacktPublishing,项目名称:Learning-Spring-5.0,代码行数:23,代码来源:MyLoggingAspect.java

示例2: executeWithoutPostProcessor

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
private Object executeWithoutPostProcessor(
    ProceedingJoinPoint call, ArgumentDiscover argumentDiscover) throws Throwable {
  final Object[] args = call.getArgs();
  final Message message = argumentDiscover.message;
  final String exchange = argumentDiscover.exchangeOfSender;
  final String routingKey = argumentDiscover.routingKey;
  before(message, exchange, routingKey);
  try {
    Object result = call.proceed(args);
    spanManager.afterSend(null);
    return result;
  } catch (Exception e) {
    spanManager.afterSend(e);
    throw e;
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:17,代码来源:AmqpTemplateAspect.java

示例3: constructorAnnotatedTrace

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("methodAnnotatedWithTrace() || constructorAnnotatedTrace()")
public Object traceMethod(final ProceedingJoinPoint joinPoint) throws Throwable {
    MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();

    Trace trace = methodSignature.getMethod().getAnnotation(Trace.class);
    if (trace!=null && !trace.enable()) {
        return joinPoint.proceed();
    }

    String className = methodSignature.getDeclaringType().getSimpleName();
    String methodName = methodSignature.getName();
    final StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    Object result = joinPoint.proceed();
    stopWatch.stop();

    if (Preconditions.isBlank(className)) {
        className = "Anonymous class";
    }

    L.i(className, buildLogMessage(methodName, stopWatch.getElapsedTime()));

    return result;
}
 
开发者ID:fengzhizi715,项目名称:SAF-AOP,代码行数:25,代码来源:TraceAspect.java

示例4: returnValueHandle

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around( "execution(org.springframework.http.ResponseEntity com.aidijing.*.controller.*Controller.*(..)) )" )
public Object returnValueHandle ( ProceedingJoinPoint joinPoint ) throws Throwable {

	Object returnValue = joinPoint.proceed();

	ResponseEntity responseEntity = ( ResponseEntity ) returnValue;

	// 用户权限或者用户自定义处理
	final RolePermissionResource currentRequestRolePermissionResource = ContextUtils.getCurrentRequestRolePermissionResource();
	if ( Objects.isNull( currentRequestRolePermissionResource ) ) {
		return returnValue;
	}
	if ( ResponseEntityPro.WILDCARD_ALL.equals( currentRequestRolePermissionResource.getResourceApiUriShowFields() ) ) {
		ContextUtils.removeCurrentRequestRolePermissionResource();
		return returnValue;
	}

	final String resourceApiUriShowFields = currentRequestRolePermissionResource.getResourceApiUriShowFields();
	final String filterAfterJsonBody      = toFilterJson( responseEntity.getBody() , resourceApiUriShowFields );
	final Object filterAfterBody          = jsonToType( filterAfterJsonBody , responseEntity.getBody().getClass() );
	ContextUtils.removeCurrentRequestRolePermissionResource();
	return new ResponseEntity<>( filterAfterBody ,
								 responseEntity.getHeaders() ,
								 responseEntity.getStatusCode() );


}
 
开发者ID:yujunhao8831,项目名称:spring-boot-start-current,代码行数:28,代码来源:ResponseEntityAspect.java

示例5: aroundJoinPoint

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("methodAnnotated()")//在连接点进行方法替换
public Object aroundJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable {
    MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
    String methodName = methodSignature.getName();
    MemoryCacheManager mMemoryCacheManager = MemoryCacheManager.getInstance();
    StringBuilder keyBuilder = new StringBuilder();
    keyBuilder.append(methodName);
    for (Object obj : joinPoint.getArgs()) {
        if (obj instanceof String) keyBuilder.append((String) obj);
        else if (obj instanceof Class) keyBuilder.append(((Class) obj).getSimpleName());
    }
    String key = keyBuilder.toString();
    Object result = mMemoryCacheManager.get(key);//key规则 : 方法名+参数1+参数2+...
    LogUtils.showLog("MemoryCache", "key:" + key + "--->" + (result != null ? "not null" : "null"));
    if (result != null) return result;//缓存已有,直接返回
    result = joinPoint.proceed();//执行原方法
    if (result instanceof List && result != null && ((List) result).size() > 0 //列表不为空
            || result instanceof String && !TextUtils.isEmpty((String) result)//字符不为空
            || result instanceof Object && result != null)//对象不为空
        mMemoryCacheManager.add(key, result);//存入缓存
    LogUtils.showLog("MemoryCache", "key:" + key + "--->" + "save");
    return result;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:24,代码来源:MemoryCacheAspect.java

示例6: execution

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("@annotation(com.nibado.example.springaop.aspects.Timed) && execution(public * *(..))")
public Object time(final ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    long start = System.currentTimeMillis();

    Object value;

    try {
        value = proceedingJoinPoint.proceed();
    } catch (Throwable throwable) {
        throw throwable;
    } finally {
        long duration = System.currentTimeMillis() - start;

        log.info(
                "{}.{} took {} ms",
                proceedingJoinPoint.getSignature().getDeclaringType().getSimpleName(),
                proceedingJoinPoint.getSignature().getName(),
                duration);
    }

    return value;
}
 
开发者ID:nielsutrecht,项目名称:spring-boot-aop,代码行数:23,代码来源:TimeLogAspect.java

示例7: monitorElapsedTime

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
/**
 * Monitor the elapsed time of method on controller layer, in
 * order to detect performance problems as soon as possible.
 * If elapsed time > 1 s, log it as an error. Otherwise, log it
 * as an info.
 */
@Around("controllerLayer()")
public Object monitorElapsedTime(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    // Timing the method in controller layer
    StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    Object result = proceedingJoinPoint.proceed();
    stopWatch.stop();

    // Log the elapsed time
    double elapsedTime = stopWatch.getTime() / 1000.0;
    Signature signature = proceedingJoinPoint.getSignature();
    String infoString = "[" + signature.toShortString() + "][Elapsed time: " + elapsedTime + " s]";
    if (elapsedTime > 1) {
        log.error(infoString + "[Note that it's time consuming!]");
    } else {
        log.info(infoString);
    }

    // Return the result
    return result;
}
 
开发者ID:ustcwudi,项目名称:springboot-seed,代码行数:28,代码来源:PerformanceMonitor.java

示例8: handler

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
/**
 * 处理补偿内嵌的远程方法的时候,不提交,只调用
 *
 * @param point point 切点
 * @param info  信息
 * @return Object
 * @throws Throwable 异常
 */
@Override
public Object handler(ProceedingJoinPoint point, TxTransactionInfo info) throws Throwable {

    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus transactionStatus = platformTransactionManager.getTransaction(def);
    try {
        return point.proceed();
    } finally {
        platformTransactionManager.rollback(transactionStatus);
    }

}
 
开发者ID:yu199195,项目名称:happylifeplat-transaction,代码行数:22,代码来源:InsideCompensationHandler.java

示例9: setUserVisibleHintProcess

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("setUserVisibleHint()")
public Object setUserVisibleHintProcess(ProceedingJoinPoint joinPoint) throws Throwable {
  Object result = joinPoint.proceed();
  Object puppet = joinPoint.getTarget();
  //Only inject the class that marked by Puppet annotation.
  Object[] args = joinPoint.getArgs();

  Method onDestroy = getRiggerMethod("setUserVisibleHint", Object.class, boolean.class);
  onDestroy.invoke(getRiggerInstance(), puppet, args[0]);
  return result;
}
 
开发者ID:JustKiddingBaby,项目名称:FragmentRigger,代码行数:12,代码来源:FragmentInjection.java

示例10: handlerControllerMethod

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("controllerMethod()")
public Object handlerControllerMethod(ProceedingJoinPoint pjp) {
	long startTime = System.currentTimeMillis();

	ResultBean<?> result;

	try {
		result = (ResultBean<?>) pjp.proceed();
		logger.info(pjp.getSignature() + "use time:" + (System.currentTimeMillis() - startTime));
	} catch (Throwable e) {
		result = handlerException(pjp, e);
	}

	return result;
}
 
开发者ID:xwjie,项目名称:ElementVueSpringbootCodeTemplate,代码行数:16,代码来源:ControllerAOP.java

示例11: around

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("execution(* io.renren.common.cache.RedisCache.*(..))")
public Object around(ProceedingJoinPoint point) throws Throwable {
    Object result = null;
    if (open) {
        try {
            result = point.proceed();
        } catch (Exception e) {
            log.error("redis error", e);
            throw new RRException("Redis服务异常");
        }
    }
    return result;
}
 
开发者ID:davichi11,项目名称:my-spring-boot-project,代码行数:14,代码来源:RedisAspect.java

示例12: doBefore

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
/**
   * 前置通知 用于拦截Controller层是否有某种权限操作
   * @param joinPoint 切点
   * @throws InterruptedException 
   * @throws IOException 
   */
  /*
  @Before("controllerAspect()")
  public void doBefore(JoinPoint joinPoint) throws InterruptedException, IOException{
      //读取session中的用户 
      HttpSession session = request.getSession();       
      
      User user = (User) session.getAttribute("userInfo");   
      
      if(user != null){
      	String permissionInfo = getControllerMethodPemissionInfo(joinPoint);
      	Subject currentUser = SecurityUtils.getSubject();
      	try{
      		currentUser.checkPermission(permissionInfo);
      	}catch (Exception e) {
		System.out.println("没有"+permissionInfo+"权限");
		//throw new UnauthorizedException(permissionInfo);
	}
      }
  }*/
  
  @Around("controllerAspect()")
  public Object doAround(ProceedingJoinPoint pjp) throws Throwable{
      String permissionInfo = getControllerMethodPemissionInfo(pjp);
  	Subject currentUser = SecurityUtils.getSubject();
  	try{
  		if(currentUser!=null){
  			currentUser.checkPermission(permissionInfo);
  			SystemContext.setAuthStatus(3);			//-- 享有授权
  		}
  	}catch (Exception e) {
	System.out.println("没有"+permissionInfo+"权限");
	SystemContext.setAuthStatus(2);		//-- 无授权
	return "{message:unauthorized}";	//-- 这种写法相当于给MV.setViewName();  如何写成"redirect:/exception/unauthorized"相当于调用Controller
}
      return pjp.proceed();
  }
 
开发者ID:ranji1221,项目名称:clemon,代码行数:43,代码来源:SystemPermissionAspect.java

示例13: executeAroundConvertAndSendThreeArgsWithPostProcessor

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around(
    "execution(* org.springframework.amqp.core.AmqpTemplate.convertAndSend(String,String,Object,org.springframework.amqp.core.MessagePostProcessor))")
public void executeAroundConvertAndSendThreeArgsWithPostProcessor(ProceedingJoinPoint call)
    throws Throwable {
  final ArgumentDiscover discoverArguments = ArgumentDiscover.from(call);
  final MessagePostProcessor argPostProcessor = discoverArguments.messagePostProcessor;
  final boolean byPass = argPostProcessor instanceof SpanManagerMessagePostProcessor;
  if (byPass) {
    call.proceed(call.getArgs());
  } else {
    executeConvertAndSendWithoutPostProcessor(call, discoverArguments);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:14,代码来源:AmqpTemplateAspect.java

示例14: handleAdminPage

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
/**
 * 处理admin下面的页面
 *
 * @param individuation 个性化名称
 * @param joinPoint
 * @return
 * @throws Throwable
 */
private Object handleAdminPage(String individuation, ProceedingJoinPoint joinPoint) throws Throwable {
    MMSnsCommonUserEntity loginUser = (MMSnsCommonUserEntity) request.getSession().getAttribute(MMSnsCommonUserEntity.MMSNS_COMMON_USER);
    if (individuation == null) {
        return "redirect:/profile/" + loginUser.getIndividuation() + "/home";
    }
    if (!individuation.equals(loginUser.getIndividuation())) {
        return "redirect:/profile/" + loginUser.getIndividuation() + "/home";
    }
    return joinPoint.proceed();
}
 
开发者ID:babymm,项目名称:mmsns,代码行数:19,代码来源:MMSnsPortalAccessControllerAspect.java

示例15: byId

import org.aspectj.lang.ProceedingJoinPoint; //导入方法依赖的package包/类
@Around("execution(* byId(..))")
public ProductInformation byIdQueryLogging(ProceedingJoinPoint jp) throws Throwable {
    log.info("byId query is about to run");
    ProductInformation pi = (ProductInformation) jp.proceed(jp.getArgs());
    log.info("byId query was executed");
    return pi;
}
 
开发者ID:PacktPublishing,项目名称:Java-9-Programming-By-Example,代码行数:8,代码来源:SpringConfigurationAspect.java


注:本文中的org.aspectj.lang.ProceedingJoinPoint.proceed方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。