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

网站为什么要更新冰雪蜜城店加盟费多少

网站为什么要更新,冰雪蜜城店加盟费多少,怎么注册域名网址,想学做网站学什么编程语言AOP不用多说#xff0c;是spring框架的两大基石之一。SpEL是Spring Expression Language的缩写#xff0c;意为Spring表达式语言#xff0c;#xff0c;其支持在运行时查询和操作对象图提供了更加丰富的功能#xff0c;最特别的是方法调用与字符串模板功能。熟悉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 ListString 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 ListString getSpELList2(TestReqVO vo){String[] arr { C ,C,JAVA,GoLang,Rust,Python};return new ArrayList(Arrays.stream(arr).toList());}GetMapping(/fluxList)public FluxListString getSpEL2(){String[] arr { C ,C,JAVA,GoLang,Rust,Python};ArrayListString list new ArrayList(Arrays.asList(arr));return Flux.just(list);}} ​​​​​​​
http://www.hkea.cn/news/14574694/

相关文章:

  • 淄博免费建站大丰建站
  • 企业网站商城连云港做网站最好
  • 如何把自己做的网站放到内网怎么自己做彩票网站
  • 重庆优化网站推广比较好的响应式设计网站
  • 369网站建设专业网站推广优化
  • 网站建设外文文献翻译桂林网站制作多少钱
  • 免费1级做爰网站哪有专做飞织鞋面的网站
  • 做网站打广告犯法吗比较好的公司网站
  • 网站建设工作会议讲话3g开发网站
  • 茂名市建设局网站shop商城系统
  • 网页设计制作音乐网站seo网站快速排名
  • 深圳建站公司兴田德润放心wordpress插件woo
  • 潮阳发布最新通告苏州seo排名外包
  • 做好网站建设和运营淄博搜索引擎优化
  • 杭州学网站建设2022最新国内新闻50条简短
  • 官网网站建设需求文档丹阳火车站对面规划
  • 求西北地区网站建设专家 西安沉睡网络 官方网址?做房地产用什么网站好
  • 建设二手商品网站总结黑龙江省城乡和住房建设厅网站首页
  • 做网站用模版山东省建设协会网站
  • 济南公司网站建设公司python如何建网站建设
  • 做彩页素材的网站搜索引擎优化的英文
  • 文化网站前置审批wordpress精仿卢松松
  • 网站建设 技术方案邢台网红排行榜
  • 信息网站开发网上注册公司系统
  • 如何将软件上传到公开网站硬件开发工程师面试题
  • 百度云网盘深圳知名网络优化公司
  • 腾讯云域名查询中山网站seo
  • wordpress站内信群发生成链接的软件
  • 在原备案号下增加新网站wordpress怎么用万网域名
  • 广州教育学会网站建设wordpress支持什么语言包