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

有没有专门做老年婚介的网站佛山新网站建设效果

有没有专门做老年婚介的网站,佛山新网站建设效果,网页网页设计班,wordpress中文维护插件目录 #x1f378;前言 #x1f37b;一、Spring EL 1.1 定义 1.2 常见使用方式 #x1f37a;二、项目案例 2.1 实现一个简单的案例 2.2 创建注解 2.3 切面类实现 2.4 创建测试接口 2.5 测试 #x1f379;三、章末 #x1f378;前言 小伙伴们大家好#xff0c;前段时间… 目录 前言 一、Spring EL 1.1 定义 1.2 常见使用方式 二、项目案例 2.1 实现一个简单的案例 2.2 创建注解 2.3 切面类实现 2.4 创建测试接口 2.5 测试 三、章末 前言 小伙伴们大家好前段时间在网上无意间听到了一个很耳生的名词 “Spring EL 表达式”这几天通过文章、视频的方式了解了些然后再本地实操下 一、Spring EL 1.1 定义 首先来看下全称 Spring Expression Language 正如命名所言是 Spring 框架中一种表达式语言。类似于其他编程语言中的表达式语言用于在运行时计算值或执行特定任务比如在运行时评估复杂的表达式通过这些表达式可以访问和操作应用程序上下文中的对象 1.2 常见使用方式 其实在项目中这种语法应该挺常见的比如下面这些 1通过 EL 表达式获取 bean 属性 #{beanName.property} 2通过 EL 表达式调用某个 bean 方法 #{bean.myMethod(args)} 3通过 EL 表达式进行运算 #{num1 num2} ... 使用方式有很多本地就挑最常用以及最常见的使用方式结合注解使用动态的处理注解参数 二、项目案例 2.1 实现一个简单的案例 比如自定义一个注解用于控制方法级别的日志记录但日志级别是根据运行时条件动态决定的通过 Spring EL 表达式实现如下 注本地环境需要一个可以启动的 SpringBoot 项目并且引入了 aop 依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency 2.2 创建注解 创建一个注解声明作用域为运行时并且是作用于方法上面的另外声明了一个方法默认值为 true,也就是默认打印日志 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** author HuangBen */ Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface LogExecution {String condition() default true; // 默认总是记录日志 } 2.3 切面类实现 实现了在目标方法执行时环绕通知动态的获取方法上的注解值解析比对判断是否需要打印日志 import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.context.expression.MethodBasedEvaluationContext; import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.expression.Expression; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.stereotype.Component;import java.lang.reflect.Method;/*** author HuangBen */ Aspect Component public class LoggingAspect {private final SpelExpressionParser parser new SpelExpressionParser();private final DefaultParameterNameDiscoverer parameterNameDiscoverer new DefaultParameterNameDiscoverer();Around(annotation(logExecution))public Object logAround(ProceedingJoinPoint joinPoint, LogExecution logExecution) throws Throwable {boolean shouldLog evaluateCondition(joinPoint, logExecution.condition());if (shouldLog) {System.out.println(Executing: joinPoint.getSignature().getName() , Log Level determined by SpEL.);}try {Object result joinPoint.proceed();//到这里目标方法执行完毕要返回的内容先暂存执行 finally 方法体return result;} finally {if (shouldLog) {System.out.println(Completed: joinPoint.getSignature().getName());}}}//用于解析 SpringEL 表达式并获取解析结果private boolean evaluateCondition(ProceedingJoinPoint joinPoint, String expression) {MethodSignature methodSignature (MethodSignature) joinPoint.getSignature();Method method methodSignature.getMethod();MethodBasedEvaluationContext context new MethodBasedEvaluationContext(null,method,joinPoint.getArgs(),parameterNameDiscoverer);Expression exp parser.parseExpression(expression);return exp.getValue(context, Boolean.class);} } 2.4 创建测试接口 这里就简单的写个接口通过传入的参数决定是否打印日志 注这里的 #input.equalsIgnoreCase(important) 就是一个简单的表达式input 表示提供的变量值后面的是字符串方法会忽略大小比较字符串是否等于目标值 GetMapping(/springel)LogExecution(condition #input.equalsIgnoreCase(important))public void performAction(String input) {System.out.println(Performing action with input: input);// 实际业务逻辑...} ​ 如果单纯的比较输入的参数这里也可以在切面类中实现但是如果每个接口的 SpringEl 比较的内容都不一样的阁下又该如何应对 if else 大军吗不如直接换一个表达式每个接口都可以有自己的 SpringEL 表达式这样编码的可用性不就增强了比如可以判断输入的字符的长度是否大于 5来决定是否打印日志结果如下注解正常工作 ​ 2.5 测试 2.5.1 输入参数为打印日志 ​ ​ 2.4.2 输入参数为不需要打印 ​ ​ 2.5 总结 这个案例只是简单演示了注解中的 SpringEL 表达式使用方式通过在目标方法上加上注解在注解里面写好自定义的 SpringEL 表达式然后在切面类里面通过 SpringEL 解析工具处理表达式获取结果即可 三、章末 文章初步的了解了 SpringEL 表达式的使用方式以及结合具体的案例了解 Spring AOP 注解的常见用法 文章到这里就结束了~
http://www.zqtcl.cn/news/202412/

相关文章:

  • wordpress汉语公益网站开发使用api对seo
  • 北京网站优化前景seo网络推广专员
  • 临海网站制作工程施工合同免费版
  • 免费的黄冈网站有哪些平台wordpress 新闻发布
  • 给男票做网站表白的软件wordpress软件网站模板下载
  • 网站备案个人可以做吗dw制作一个手机网站模板
  • 如何识别一个网站是否做的好坏新河官网
  • 深圳网站建设 卓教育直播网站开发
  • 如何修改网站后台密码河南省罗山县做网站的公司
  • 个人网站免费源码大全湖南长沙新增病例最新消息
  • 途牛网站开发需求邯郸市中小学健康管理平台登录
  • 青岛商城网站开发年度关键词有哪些
  • 电商网站开发文献综述网站文案优化
  • 兼职工厂网站建设万维网的代表网站
  • 企业要建设一个网站需要多少钱网站制作的关键技术
  • 大连住房和城乡建设网站工程公司取名字大全
  • 自建网站投放广告网页设计色彩搭配
  • 网站建站公司哪家价钱合理seo优化是什么职位
  • 德州建设网站网络营销推广方式
  • 网站建设经费预算策划书河南省城乡建设厅网站
  • 校园二手网站开发与设计任务书wordpress 分类名称
  • 高端网站建设那公司好简约网站设计欣赏
  • 域名的网站建设方案书wordpress图片插件
  • 哪个网站做的w7系统好百度网络营销的概念
  • 哪里接单做网站怎么个人网站设计
  • 乐陵seo网站优化网站后期维护是做什么
  • 网站导航html源码网站编辑的工作职能有哪些
  • 品牌网站建设网wordpress密码保护文章
  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则