2 Star 1 Fork 1

守心/appoint-api

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

appoint-api

介绍

需要在指定接口的前后处理一些与业务逻辑无关的事务,并且不会影响业务逻辑的运行。例如日志记录,性能监控,访问拦截、权限控制(基于Api的权限控制)等等。

安装教程

<dependency>
  <groupId>com.gitee.practice-pine</groupId>
  <artifactId>appoint-api-spring-boot-start</artifactId>
  <version>1.0-RELEASES</version>
</dependency>

使用说明

  1. 导入pom依赖
  2. 实现AppointApiMapper接口,每一个方法进行自定义处理
@Slf4j
@Component
public class AppointApiTestA implements AppointApiMapper {

    @Override
    public String before(Object[] objects, HttpServletRequest httpServletRequest) {
        log.info("AppointApiTestA -> before");
        for (Object object : objects) {
            log.info("inParam -> {}" , JSON.toJSONString(object));
        }
        return "11";
    }

    @Override
    public void after(String s, Object o) {
        log.info("AppointApiTestA -> after");
        log.info("logId -> {}" , JSON.toJSONString(s));
        log.info("outParam -> {}" , JSON.toJSONString(o));
    }

    @Override
    public void afterThrowing(String s, Throwable throwable) {
        log.info("AppointApiTestA -> afterThrowing");
        log.info("logId -> {}" , JSON.toJSONString(s));
        log.info("Throwable -> {}" , JSON.toJSONString(throwable));
    }

    @Override
    public void finalProcess(Object[] objects, Object o, Throwable throwable, AppointApiProperty appointApiProperty, Method method) {
        log.info("AppointApiTestA -> finalProcess");
        for (Object object : objects) {
            log.info("inParam -> {}" , JSON.toJSONString(object));
        }
        log.info("outParam -> {}" , JSON.toJSONString(o));
        log.info("Throwable -> {}" , JSON.toJSONString(throwable));
        log.info("AppointApiProperty -> {}" , JSON.toJSONString(appointApiProperty));
        log.info("Method -> {}" , JSON.toJSONString(method));
    }
}
  1. 配置(yml)
appoint:
  logger:
    properties:
      - apiGroupName: A
        loggingType: bean
        loggingPath: cn.edu.lnpu.config.aop.AppointApiTestA

4 指定Api

    @AppointApi(apiGroupName = "A")
    @PostMapping("/getAll")
    @CrossOrigin
    public ResidentQueryOutDto getAll(@RequestBody ResidentQueryInDto inDto) {
    
        return outDto;
    }

上述步骤是实现单组的,如果需要实现多组,请重复2,3,4步。

空文件

简介

需要在指定接口的前后处理一些与业务逻辑无关的事务,并且不会影响业务逻辑的运行。例如日志记录,性能监控,访问拦截、权限控制(基于Api的权限控制)等等。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/practice-pine/appoint-logger.git
git@gitee.com:practice-pine/appoint-logger.git
practice-pine
appoint-logger
appoint-api
dev

搜索帮助