龙空技术网

springboot拦截接口相应数据,并自定义修改数据内容的方法

ls909074489 119

前言:

今天我们对“html修改数据”都比较珍视,我们都想要分析一些“html修改数据”的相关知识。那么小编同时在网上汇集了一些关于“html修改数据””的相关知识,希望大家能喜欢,你们快快来了解一下吧!

转载自:

记一个springboot项目拦截接口相应数据,并自定义修改数据内容的方法

在我们开发过程和前端联调数据,往往都没有好的测试数据,每次都做假的数据就太麻烦了,特别是一些报表数据。

现在分享一个可以自定义返回数据的方法,直接上代码

package com.yy.auth;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.core.MethodParameter;

import org.springframework.http.MediaType;

import org.springframework.http.converter.HttpMessageConverter;

import org.springframework.http.server.ServerHttpRequest;

import org.springframework.http.server.ServerHttpResponse;

import org.springframework.util.CollectionUtils;

import org.springframework.web.bind.annotation.ControllerAdvice;

import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;

import com.alibaba.fastjson.JSON;

import com.yy.bs.demo.demodata.DemoDataService;

import com.yy.domain.bs.demo.demodata.DemoDataEntity;

import com.yy.frame.auth.handler.UserInfoThreadLocal;

import com.yy.modules.sys.param.ParamUtil;

import com.yy.modules.sys.user.UserInfo;

@ControllerAdvice

public class ResponseBodyAnalysis implements ResponseBodyAdvice<Object> {

@Autowired

private DemoDataService demoDataService;

@Override

public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {

return true;

}

@Override

public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {

try {

UserInfo curUser = UserInfoThreadLocal.getInstance().get();

if(curUser != null && curUser.getOrgid().equals(ParamUtil.getParamValue("demo_orgid", "1735292260538819520"))){

List<DemoDataEntity> list = demoDataService.findByUrl(request.getURI().getPath());

if(!CollectionUtils.isEmpty(list)){

return JSON.parseObject(list.get(0).getContent(), body.getClass());

}

}

} catch (Exception e) {

e.printStackTrace();

}

return body;

}

}

这里我判断也比较简单,为不影响其他正常用户使用

先判断当前用户的机构是否指定的机构id,在判断有没配置对应的url

其中DemoDataEntity 里的字段也比较简单,如下

@Column(length = 256)

public String title;

@Column(length = 250)

public String url;

@Lob

public String content;

我们根据请求地址,找到对应的数据,然后直接转成对象返回即可

转载自:

标签: #html修改数据