96SEO 2026-02-20 07:14 8
最近要搞脱敏信息所以想了几种方案最后使用全局的接口拦截但是又不能用注解的方式毕竟是几年的老产品有很多限制。

afterReturing但是发现返回值不能修改就查了查源码。
第一种情况如果返回的对象改变了对象的引用地址这种情况是不能改变返回对象中的值的
第二种情况如果返回的对象是一个基本数据类型或者是String的值是不能改变返回值的尤其是String这种final类型的。
com.domes.common.restful.filter;import
cn.hutool.core.util.DesensitizedUtil;
com.alibaba.fastjson2.JSONArray;
com.alibaba.fastjson2.JSONObject;
com.domes.common.api.dto.WebResult;
org.aspectj.lang.annotation.AfterReturning;
org.aspectj.lang.annotation.Aspect;
org.aspectj.lang.annotation.Pointcut;
org.springframework.context.annotation.EnableAspectJAutoProxy;
org.springframework.core.annotation.Order;
org.springframework.stereotype.Component;/***
EnableAspectJAutoProxy(proxyTargetClass
{Pointcut(annotation(org.springframework.web.bind.annotation.RequestMapping)
annotation(org.springframework.web.bind.annotation.GetMapping))public
{//这种情况不能改变返回的对象改变了对象的引用地址这种情况是不能改变返回对象中的值的/*String
JSON.toJSONString(obj);JSONObject
JSONObject.parseObject(objString);if(objString.contains(mobile)){dealObject(object);obj
object;}*///返回的对象是String等final修饰的值是不能改变返回值的。
//String
正常情况下我们想要修改obj只需要强转为对应的对象再重新设置值即可如下//这种情况可以改变WebResult
(WebResult)obj;webResult.setMessage(改变);return
object){object.forEach((key,val)
JSONObject){dealObject((JSONObject)
JSONArray){dealArray((JSONArray)
{if(key.equals(mobile)){object.put(key,
DesensitizedUtil.mobilePhone(String.valueOf(val)));}}});}private
JSONObject){dealObject((JSONObject)
JSONArray){dealArray((JSONArray)
AfterReturningAdviceInterceptor看下这个类
https://www.apache.org/licenses/LICENSE-2.0**
org.springframework.aop.framework.adapter;import
org.aopalliance.intercept.MethodInterceptor;
org.aopalliance.intercept.MethodInvocation;import
org.springframework.aop.AfterAdvice;
org.springframework.aop.AfterReturningAdvice;
org.springframework.util.Assert;/***
org.springframework.aop.AfterReturningAdvice}.*
AfterReturningAdviceInterceptor
AfterReturningAdviceInterceptor
AfterReturningAdviceInterceptor(AfterReturningAdvice
{//执行具体的接口controller层实现的方法Object
mi.proceed();//调用DesensitizationAspect的afterReturning注解的doAfterReturning方法//大家仔细看这个是个void方法是没有接收返回值的this.advice.afterReturning(retVal,
mi.getThis());//返回值同样是mi.proceed()执行后的对象return
原创不易如若本文能够帮助到您的同学支持我关注我点赞收藏⭐️留言探讨问题看到立马回复格言己所不欲勿施于人
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback