建设银行城东支行网站网站报价表格

web/2025/10/2 8:33:38/文章来源:
建设银行城东支行网站,网站报价表格,自助建站自媒体,福建建筑人才服务中心档案系列文章 1.SpringBoot整合RabbitMQ并实现消息发送与接收 2. 解析JSON格式参数 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. Java中运用BigDecimal对字符串的数值进行加减乘除等操作 5. List#xff1c;HashMap#xff1c;String,String#xff1e; 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. Java中运用BigDecimal对字符串的数值进行加减乘除等操作 5. ListHashMapString,String实现自定义字符串排序key排序、Value排序 更多该系列文章可以看我主页哦 目录 系列文章前言一、准备工作二、准备实操2.1、编写一个自己定义的Log注解2.2、编写切面类LogAspect.java2.2.1、定义切面2.2.2、代码编写 总结一下源码展示 前言 说到AOP大家都可以想到他是面向切面的编程它通过将横切关注点例如日志记录、事务管理、权限控制等从主要业务逻辑中分离出来以模块化的方式进行管理。在AOP中通过定义切面Aspect来捕获和处理横切关注点然后将其应用于特定的目标对象或方法。 官方的解释有点抽象我们举个例子说明假设我们需要在多个方法中添加日志记录功能。传统的方式是在每个方法中都添加日志代码但这样会导致代码重复并且当我们需要修改日志记录逻辑时需要逐个修改所有方法。而使用AOP我们只需定义一个切面将日志记录的逻辑写在切面中。然后通过在需要添加日志的地方进行配置就能自动将切面应用到目标方法中实现日志记录的功能。 文章说明 本篇文章主要是使用Aop的环绕通知去实现将每次请求的接口信息操作的模块请求方法请求的url请求的ip入参出参以及耗时进行记录并存到数据库。 一、准备工作 首先我们导入Aop的坐标 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency因为我们有一些结果要json输出 所以用了fastjson依赖,下面给出xml坐标,当然你也可以喜欢着其他的转json工具 dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion2.0.3/version/dependency二、准备实操 2.1、编写一个自己定义的Log注解 Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface Log {// 业务类型BusinessType businessType() default BusinessType.OTHER;// 模块名称String title() default ; }模块名称、业务类型等可以根据自己的实际情况去添加和删除 之后我们将注解写在需要记录的方法上面这里是一个简单的分页查询 入参为每页条数和页码出参就是分页的结果 Log(title 分页查询商品,businessType BusinessType.GETAll)GetMapping(/goods/list)public Result pageList(int pageNum,int pageSize,String name , String useage){return Result.success(goodsService.selectPage(pageNum,pageSize,name,useage));}2.2、编写切面类LogAspect.java 2.2.1、定义切面 /*** 定义切面*/Pointcut(annotation(com.example.masks.annotation.Log))public void pt() {}2.2.2、代码编写 我们定义一个环绕切点首先记录当前时间作为切点方法执行前的时间戳使用 pjp.proceed() 执行切点方法之后接着计算切点方法执行的时长并记录日志。这里调用了 handleLog() 方法来处理日志记录它需要传入 pjp、runTime 和 result 三个参数。 /*** 环绕切点* param* return result*/Around(Log())public Object log(ProceedingJoinPoint pjp) throws Throwable {long beginTime System.currentTimeMillis();// 执行切点方法Object result pjp.proceed();// 执行时长Long runTime System.currentTimeMillis() - beginTime;handleLog(pjp,runTime,result);return result;}在 handleLog() 方法中首先获取切点方法的签名和注解信息在从注解中获取模块和业务类型信息, 之后依次获取、请求参数 、 HTTP方法 、 IP地址 和 请求URL 等信息 private void handleLog(ProceedingJoinPoint pjp,Long runTime, Object result) {MethodSignature signature (MethodSignature) pjp.getSignature();Method method signature.getMethod();// 获取注解内容Log logAnnotation method.getAnnotation(Log.class);// 获取模块String title logAnnotation.title();// 获取业务类型BusinessType businessType logAnnotation.businessType();Object[] args pjp.getArgs();// 入参数String params JSON.toJSONString(args);//出参String res JSON.toJSONString(result);// 请求方法String httpMenthod httpServletRequest.getMethod();// ipString ip IPUtils.getIpAddr(httpServletRequest);// 请求urlString requestURL httpServletRequest.getRequestURL().toString();// 封装日志对象SysLog sysLog new SysLog(title, businessType, httpMenthod, requestURL, ip, params, res, runTime);// 这里可以根据自己的需求去处理sysLog可以存储到数据库等储存到数据库的操作就不展示了比较简单我这里就控制台输出一下这一条信息System.out.println(sysLog); 展示一下因为我把日志存储到了数据库、就给大家展示一下数据库的结果 总结一下 总的来说AOP 日志记录是一种实现代码模块化和复用的好方法可以提高代码的可维护性和可读性。在实际开发中我们应该灵活运用 AOP 技术根据实际需求选择合适的切点表达式和日志记录方式并注意日志级别和格式的设置以便更好地记录和分析日志信息。 希望通过本篇文章让大家对Aop有一个更深入的了解尤其是AOP去处理日志的功能是Aop最常见的一个功能我这里只是进行简单的AOP日志功能的运用如果大家有什么更好的方法和对我代码改进的地方请大家积极私信一起努力 源码展示 sysLog.java 封装的实体 public class SysLog {private Long id;/*** 操作模块*/private String title;/*** 业务类型*/private BusinessType businessType;/*** 请求类型*/private String requestMethod;/*** 请求URl*/private String operUrl;/*** 请求IP*/private String operIp;/*** 请求参数*/private String operParam;/*** 出参*/private String resultParam;/*** 消耗时间-ms*/private Long costTime;public SysLog(String title, BusinessType businessType, String requestMethod, String operUrl, String operIp, String operParam,String resultParam, Long costTime) {this.title title;this.businessType businessType;this.requestMethod requestMethod;this.operUrl operUrl;this.operIp operIp;this.operParam operParam;this.resultParam resultParam;this.costTime costTime;}Log注解 Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface Log {// 业务类型BusinessType businessType() default BusinessType.OTHER;// 模块名称String title() default ; }LogAspect.java 切面类 Aspect Component public class LogAspect {AutowiredHttpServletRequest httpServletRequest;private static final Logger log LoggerFactory.getLogger(LogAspect.class);/*** 定义切面*/Pointcut(annotation(com.xiaoke.annotation.Log))public void pt() {}/*** 环绕切点*/Around(pt())public Object log(ProceedingJoinPoint pjp) throws Throwable {long beginTime System.currentTimeMillis();// 执行切点方法MObject result pjp.proceed();// 执行时长Long runTime System.currentTimeMillis() - beginTime;// 记录日志handleLog(pjp,runTime,result);return result;}private void handleLog(ProceedingJoinPoint pjp,Long runTime, Object result) {MethodSignature signature (MethodSignature) pjp.getSignature();Method method signature.getMethod();// 获取注解内容Log logAnnotation method.getAnnotation(Log.class);// 获取模块String title logAnnotation.title();// 获取业务类型BusinessType businessType logAnnotation.businessType();Object[] args pjp.getArgs();// 入参数String params JSON.toJSONString(args);//出参String res JSON.toJSONString(result);// 请求方法String httpMenthod httpServletRequest.getMethod();// ipString ip IPUtils.getIpAddr(httpServletRequest);// 请求urlString requestURL httpServletRequest.getRequestURL().toString();// 封装日志对象SysLog sysLog new SysLog(title, businessType, httpMenthod, requestURL, ip, params, res, runTime);// 这里可以根据自己的需求去处理sysLog可以存储到数据库等储存到数据库的操作就不展示了比较简单我这里就控制台输出一下这一条信息System.out.println(sysLog);} }下面是俩个工具类百度可以搜索到 这里也给出源码 BusinessType.java 这是一个枚举 /*** Description 业务操作类型*/ public enum BusinessType {/*** 其它*/OTHER,/*** 新增*/INSERT,/*** 修改*/UPDATE,/*** 删除*/DELETE,/*** 授权*/GRANT, }IPutils.java 这个主要是获取ip import org.springframework.util.StringUtils;import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException;public class IPUtils {private static final String IP_UTILS_FLAG ,;private static final String UNKNOWN unknown;private static final String LOCALHOST_IP 0:0:0:0:0:0:0:1;private static final String LOCALHOST_IP1 127.0.0.1;/*** 获取IP地址* p* 使用Nginx等反向代理软件 则不能通过request.getRemoteAddr()获取IP地址* 如果使用了多级反向代理的话X-Forwarded-For的值并不止一个而是一串IP地址X-Forwarded-For中第一个非unknown的有效IP字符串则为真实IP地址*/public static String getIpAddr(HttpServletRequest request) {String ip null;try {//以下两个获取在k8s中将真实的客户端IP放到了x-Original-Forwarded-For。而将WAF的回源地址放到了 x-Forwarded-For了。ip request.getHeader(X-Original-Forwarded-For);if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(X-Forwarded-For);}//获取nginx等代理的ipif (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(x-forwarded-for);}if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(Proxy-Client-IP);}if (StringUtils.isEmpty(ip) || ip.length() 0 || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(WL-Proxy-Client-IP);}if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(HTTP_CLIENT_IP);}if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getHeader(HTTP_X_FORWARDED_FOR);}//兼容k8s集群获取ipif (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) {ip request.getRemoteAddr();if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) {//根据网卡取本机配置的IPInetAddress iNet null;try {iNet InetAddress.getLocalHost();} catch (UnknownHostException e) {System.out.println();System.out.println(getClientIp errore.getMessage());}assert iNet ! null;ip iNet.getHostAddress();}}} catch (Exception e) {System.out.println(IPUtils ERRORe.getMessage());}//使用代理则获取第一个IP地址if (!StringUtils.isEmpty(ip) ip.indexOf(IP_UTILS_FLAG) 0) {ip ip.substring(0, ip.indexOf(IP_UTILS_FLAG));}return ip;} }以上就是全部源码了 有兴趣的朋友可以观看我其他的文章和私信我哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

护肤品网站建设的摘要iis2008如何做网站

目录 一、摘要1.1 项目介绍1.2 项目详细录屏 二、功能模块2.1 数据中心模块2.2 二手商品档案管理模块2.3 商品预约管理模块2.4 商品预定管理模块2.5 商品留言板管理模块2.6 商品资讯管理模块 三、实体类设计3.1 用户表3.2 二手商品表3.3 商品预约表3.4 商品预定表3.5 留言表3.6…

井冈山保育院网站建设网站前后端的关系

快捷键快捷键符号英文名称功能说明Control Space⌃SpaceBasic code completion基本的代码补全(补全任何类、方法、变量),代码智能提示,因为和切换输入法快捷键冲突,所以基本改成Alt/Shift Command Enter⌘⇧↩Compl…

网站硬件费用wordpress地图页面如何添加

朋友们好! 春天来了,我们热情洋溢的团队很高兴能为 Gotchiverse 带来一堆新鲜的更新和丰富的功能。让我们一起来看看这次开发更新带来了什么: Gotchichain 选择定居基地 精神力量竞技场获得了 EBIC 更新 高奇守护者通过全新的进阶系统提升…

长沙房地产网站建设网页游戏大全小游戏

RTOS 调试指南 此文档介绍 FreeRTOS 系统方案支持的常用软件调试方法,帮助相关开发人员快速高效地进行软件调试,提高解决软件问题的效率。 栈回溯 栈回溯是指获取程序的调用链信息,通过栈回溯信息,能帮助开发者快速理清程序执行…

中英文网站建站睢县做网站的公司

后台代理提醒简介 随着生活节奏的加快,我们有时会忘记一些重要的事情或日子,所以提醒功能必不可少。应用可能需要在指定的时刻,向用户发送一些业务提醒通知。例如购物类应用,希望在指定时间点提醒用户有优惠活动。为满足此类业务…

建设银行河北招聘网站网站改版 数据迁移

西门子S7-1200/1500系列的PLC,采用Profinet实时以太网通讯协议,需要连接带EtherCAT的通讯功能的伺服驱动器等设备,就必须进行通讯协议转换。捷米特JM-EIP-RTU系列的网关提供了,快速可行的解决方案 捷米特JM-ECTM-PN在PROFINET一侧…

php企业网站源码下载西安建站套餐

情况1:图片在/public目录下把图片放到与index.html同级的目录下情况1-1.png方式1因为vue编译后会生成index.html,所以我们将图片与index.html放在同一目录下,相当于在index.html中使用引入图片情况2:图片在/src/assets目录下把图片…

网站建设赚钱吗天元建设集团有限公司总裁赵纪峰

文章目录 颜色特征量化颜色直方图适用颜色空间:RGB、HSV等颜色空间操作 几何特征边缘 Edge边缘定义边缘提取 基于关键点的特征描述子引入几何特征:关键点几何特征:Harris角点FAST角点检测几何特征:斑点局部特征:SIFT预…

家教网站建设手机制作app教程

飞桨(PaddlePaddle)是百度自主研发的中国首个开源开放、功能丰富的产业级深度学习平台,以百度多年的深度学习技术研究和业务应用为基础。飞桨深度学习平台集核心框架、基础模型库、端到端开发套件、丰富的工具组件于一体,还包括了…

温州本地网站平台国外域名注册哪个网站好

虽然单花色胡牌算法面试时写出来了,但是完整的胡牌算法却没有写,既然遇到了,秉着不抛弃不放弃的精神,当然不能原谅懒惰的自己了。下面这篇为一个完整的胡牌算法。胡牌规则除了以下几点,其余与单花色胡牌规则一致&#…

网站建设熊掌号wordpress分类产品

注:新添加的硬盘,如果没有分区,可以直接使用pvcreate进行创建,然后用vgextend进行扩展如果新添加的硬盘经过分区,则要把需要扩展的分区修改为8e格式,则进行扩展以上内容实测~相关概念:pv:物理卷…

优化建站seo门户php做的直播网站

介绍我们知道,把神经网络拆解,可以把它归结为几个元素的排列组合而成,例如,以卷积神经网络为例,其主要由卷积层,池化层,残差连接,注意力层,全连接层等组成,如…

长沙建设网站哪家好关键词优化工具互点

1. 题目 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ (表示苹果)和 ‘.’ (表示空白格子)。 你需要切披萨 k-1 次,得到 k 块披萨并送给别人。 切披萨的每一刀…

山东网站建设优化知名网站制作企业

rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像…

域名被墙检测网站网站开发的框架协议

目录原理算法步骤优缺点源码效果原图输出平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文摘自2、Harris角点检测算法 —— 诺亚方舟369 原理 Harris算子是对Moravec算子的改进,包括: (1)Harris算子用…

企业网站建设规划机械外贸有哪些平台

![在这里插入图片描述](https://img-blog.csdnimg.cn/d55799a22b724099930eb7fb67260a12.png 最后 保存就可以了

最全的提交网站入口大全网站关键词 公司

zoj2760:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode2760 题意:给你一张有向带权图,然后问你最短路径有多少条。 题解:这一题用到了网络流,一开始,我想到用找到一条最短路,然后删除这条…

成都外贸建站wordpress创建标签

文章目录1. 题目2. 解题1. 题目 链接:https://ac.nowcoder.com/acm/contest/9887/A 来源:牛客网 牛牛有现在有n个物品,每个物品有一个体积v[i]和重量g[i],他想选择其中总体积恰好为V的若干个物品,想使这若干个物品的总重量最大&…

php网站开发技术课程19

欢迎关注专栏:里面定期分享Java架构技术知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。程序员圈内那点事​zhuanlan.zhihu.com经过半年的沉淀,加上对MySQL,redis…

网站建设出找不到网页建设一个网站需要什么人员

算法的备胎Hash和找靠山的队列 备胎Hash Hash,不管是算法,还是在工程中都会大量使用。很多复杂的算法问题都用Hash能够轻松解决,也正是如此,在算法例就显得没什么思维含量,所以Hash是应用里的扛把子,但在算…