spring boot 注解实现mock数据
一、注解
package com.jayce.boot.route.component.mock;import io.swagger.annotations.ApiModelProperty;import java.lang.annotation.*;@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MockData {@ApiModelProperty("模拟值key")String key() default "";
}
二、切面
package com.jayce.boot.route.component.mock;import com.jayce.boot.route.common.util.SpringUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;import java.lang.reflect.Method;@Slf4j
@Aspect
@Component
public class MockAspect {@Pointcut("@annotation(com.jayce.boot.route.component.mock.MockData)")public void pointCut() {}@Around("pointCut()")public Object around(ProceedingJoinPoint joinPoint) throws NoSuchMethodException {//用的最多通知的签名Signature signature = joinPoint.getSignature();MethodSignature msg=(MethodSignature) signature;Object target = joinPoint.getTarget();//获取注解标注的方法Method method = target.getClass().getMethod(msg.getName(), msg.getParameterTypes());//通过方法获取注解MockData mockData = method.getAnnotation(MockData.class);String key = mockData.key();MockService mockService = SpringUtil.getBean(MockService.class);Object mockValue = mockService.getMockValue(key);return mockValue;}
}
三、模拟数据类
package com.jayce.boot.route.component.mock;import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.jayce.boot.route.common.util.PageUtil;
import com.jayce.boot.route.entity.LibraryBook;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.List;
import java.util.Map;@Service
public class MockService {/*** 获取mock数据** @param key key* @return java.lang.String*/public Object getMockValue(String key) {Map<String, Object> map = new HashMap<>();map.put("key1", "{1,2,3}");PageInfo<LibraryBook> testPage = new PageInfo<>();List<LibraryBook> list = Lists.newArrayList(LibraryBook.builder().bookId(1L).bookName("HerryPoter").build());testPage = PageUtil.build(list, 10, 1, 10);map.put("testPage", testPage);return map.get(key);}
}
spring boot 注解实现mock数据相关推荐
- Spring Boot干货系列:数据存储篇-SQL关系型数据库之MyBatis的使用
Spring Boot干货系列:数据存储篇-SQL关系型数据库之MyBatis的使用 前言 上篇我们介绍了Spring Boot对传统JdbcTemplate的集成,这次换一下,介绍下Spring B ...
- Spring Boot中前后端传递数据方式
Spring Boot中前后端传递数据方式 postman作为客户端 目前前后端分离开发中用到的最流行的的参数格式是application/x-www-form-urlencoded和applicat ...
- Spring Boot注解
文章目录 简介 @SpringBootApplication @EnableAutoConfiguration 条件自动配置 @ConditionalOnClass 和 @ConditionalOnM ...
- 超级详细的Spring Boot 注解总结
日常编程中我相信大家肯定都用过spring,也用过spring的注解,哪怕面试的时候也经常会被问到一些spring和spring boot注解的作用和含义等,那么这篇就带大家来看看超级详细的Sprin ...
- Spring Boot 注解原理
Spring Boot 注解原理 首先,先看SpringBoot的主配置类: @SpringBootApplication public class StartEurekaApplication {p ...
- Spring Boot注解的运行原理
Spring Boot 是一个基于 Spring Framework 的开源框架,通过简化配置和开发过程,使 Spring 应用程序的开发变得更加快速和便捷.在 Spring Boot 中,注解是非常 ...
- Spring Boot注解大全,一键收藏了!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:www.cnblogs.com/tanwei81/p/681 ...
- 【建议收藏】Spring Boot注解全梳理!
一.注解(annotations)列表 @SpringBootApplication:包含了**@ComponentScan**.「@Configuration」 和 「@EnableAutoConf ...
- Spring boot 注解 ConfigurationProperties 的使用
原创自 第一勺金 00 最近在学习使用 spring boot.发现其中 @ConfigurationProperties这个注解使用的比较多.搜了比较多的文档都是英文,避免以后忘记,这里我也总结下它 ...
最新文章
- Spring面试五连问,这怎么顶啊
- 解决SQL server2005数据库死锁的经验心得
- hdu2155 小黑的镇魂曲(dp)
- PS学习笔记2-画笔的应用
- c语言for循环 wdtcn,MSP430F149的DS18B20C语言程序
- cocos2d 解密ccbi_怎么让cocosbuilder制作的动画(cocos2d-x的ccbi动画)播放完删除自己?...
- vue、cnpm不是内部文件_解决vue不是内部或者外部命令
- 云瓣影音网站微信端(已开源)
- 20200813每日一句
- selenium grid下载、原理、配置与使用(转载)
- PPT设置自动保存时间 mac_第17期分享:如何控制PPT演讲汇报时间?
- CTS 使用instrumentation命令测试
- ORB_SLAM2源码阅读(一)概要
- 50句英语成语:字面和实际意思大不同
- python+selenium实现淘宝双十一自动下单
- 爱情如水,宽容是杯~
- continue的用法
- [matlab编程实践].cli文件二进制格式读取【3D打印切片文件】
- 坚持#第407天~云仓刚换了新系统,现在又要换新仓库了
- 计算机音乐制作专业艺考,西安音乐学院2017年电子音乐制作专业校考考题范围...
热门文章
- DNA to Face,会是寻人缉凶的一颗“银弹”吗?
- x265-1.8版本-common/lowres.h注释
- setup写在script标签中
- 对接科技侠智能锁(Ble)总结
- UUID 和 GUID 的区别
- 如何驱动段码液晶屏?
- Windows Update MiniTool 20.12.2016 控制Window更新下载及使用教程
- 文件被永久删除、格式化怎么办?DiskGenius、minitool来帮你
- 交警手势信号图解(新)----07年10月1日全国施行
- 能量原理与变分法笔记09: 虚功原理的例子