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

wordpress 响应 主题系统优化软件有哪些

wordpress 响应 主题,系统优化软件有哪些,群辉授权wordpress权限,怎么样才能找到网站后台网址AOP不用多说,是spring框架的两大基石之一。SpEL是Spring Expression Language的缩写,意为Spring表达式语言,,其支持在运行时查询和操作对象图提供了更加丰富的功能,最特别的是方法调用与字符串模板功能。熟悉js的es6语…

         AOP不用多说,是spring框架的两大基石之一。SpEL是Spring Expression Language的缩写,意为Spring表达式语言,,其支持在运行时查询和操作对象图提供了更加丰富的功能,最特别的是方法调用与字符串模板功能。熟悉js的es6语法的小伙伴都知道,模板字符串,这个spel就类似js的模板字符串。

         本次代码主要是熟悉使用语法,并布对应实际的应场景。

一、自定义注解

@Target({ElementType.PARAMETER,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TestAopAnn {/*** spEL* @return*/String  spEL() default "";
}

二、自定义切面

@Aspect
@Component
public class TestAopAspect {private final static Logger LOGGER = LoggerFactory.getLogger(TestAopAspect.class);@Pointcut("@annotation(org.example.boot3.aop.TestAopAnn)")public void pointCut(){}@AfterReturning(value = "pointCut()",returning = "result")public   void  doAfter(JoinPoint joinPoint,Object result){Method method = getMethod(joinPoint);TestAopAnn annotation = method.getAnnotation(TestAopAnn.class);if(annotation!=null){LOGGER.info("TestAopAspect-->doAfter-------后置织入");/// 通过spel表达式获取到形参的中name的值String value =getValue(joinPoint, method, annotation.spEL());LOGGER.info("TestAopAspect-->doBefore-------value={}",value);/// 将name追加到返回的listtry {if(result!=null && result instanceof List){List  list = (List) result;list.add(value);}} catch (Exception e) {e.fillInStackTrace();}}}private   Method  getMethod(JoinPoint  joinPoint) {Signature signature = joinPoint.getSignature();MethodSignature methodSignature = (MethodSignature) signature;return methodSignature.getMethod();}/**解析spel*/private String  getValue(JoinPoint  joinPoint,  Method method,String elStr){StandardEvaluationContext context = new StandardEvaluationContext();DefaultParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer();/// 方法参数名称String[] parameterNames = parameterNameDiscoverer.getParameterNames(method);Assert.isTrue(parameterNames!=null,"参数列表不能为空");///方法参数值Object[] args = joinPoint.getArgs();for (int i = 0; i < parameterNames.length; i++) {context.setVariable(parameterNames[i],args[i]);}ExpressionParser parser = new SpelExpressionParser();Expression expression = parser.parseExpression(elStr);return (String) expression.getValue(context);}
}

三、测试接口

public class TestReqVO {private String  name;private String  remark;
}
@RestController
@RequestMapping("/api")
public class RestApi {/*** SpEL 调用对象方法* @param vo* @return*/@GetMapping("/testSpEL1")@TestAopAnn(spEL = "#vo.getName()")public List<String> getSpELList1(TestReqVO vo){String[] arr = { "C" ,"C++","JAVA","GoLang","Rust","Python"};return new ArrayList<>(Arrays.stream(arr).toList());}/*** SpEL 调用对象属性* @param vo* @return*/@GetMapping("/testSpEL2")@TestAopAnn(spEL = "#vo.name")public List<String> getSpELList2(TestReqVO vo){String[] arr = { "C" ,"C++","JAVA","GoLang","Rust","Python"};return  new ArrayList<>(Arrays.stream(arr).toList());}@GetMapping("/fluxList")public Flux<List<String>> getSpEL2(){String[] arr = { "C" ,"C++","JAVA","GoLang","Rust","Python"};ArrayList<String> list = new ArrayList<>(Arrays.asList(arr));return Flux.just(list);}}

​​​​​​​

http://www.dinnco.com/news/48144.html

相关文章:

  • vs用户登录注册网站建设代码软文推广营销服务平台
  • 做游戏ppt下载网站有哪些四川seo关键词工具
  • wordpress批量导入tag上海seo公司排名
  • 化州网站建设社交媒体营销案例
  • 工信部网站备案号查询开发客户的70个渠道
  • 柬埔寨网赌网站开发深圳谷歌优化seo
  • 网站建设丶seo优化搜索引擎优化排名优化培训
  • 0539 网站抖音seo关键词排名技术
  • wordpress列表页不显示图片seo是什么姓
  • 男性问题免费咨询济南网站seo公司
  • 北京网页设计与制作嘉兴seo外包公司费用
  • 可以自己做视频网站吗重庆镇海seo整站优化价格
  • 漳州房产网西青seo
  • 广告素材网站都有哪些网络推广
  • 做网站需要空间做任务赚佣金一单10块
  • 凡科网站可以做自适应的吗抚顺网络推广
  • 芯互联大厦做网站的免费直链平台
  • 门源网站建设公司苏州排名搜索优化
  • 重庆网站建设公司 十年seo教程最新
  • 微信优惠券网站怎么做站长seo综合查询
  • 丹东网站建设公司网络推广策划方案怎么写
  • 企业网站开发合同小红书软文推广
  • 创业谷网站建设方案手机百度电脑版入口
  • wordpress 3.9.2 漏洞广州网站优化方式
  • 网站开发所遵循广州网站seo地址
  • 重庆一次可以备案多少个网站网站的营销推广方案
  • 网站分站的实现方法营销渠道名词解释
  • 做兼职什么网站比较好黄页88网
  • 做舞台灯光的在哪些网站接订单呢网络舆情监测与研判
  • 成都淮洲新城建设投资有限公司网站现在什么app引流效果好