{"id":15521909,"url":"https://github.com/crossoverjie/ssm-request-check","last_synced_at":"2025-04-23T04:27:51.309Z","repository":{"id":94777548,"uuid":"92079377","full_name":"crossoverJie/SSM-REQUEST-CHECK","owner":"crossoverJie","description":":hourglass_flowing_sand: 基于annotation的http请求去重插件","archived":false,"fork":false,"pushed_at":"2017-08-28T07:05:03.000Z","size":17,"stargazers_count":10,"open_issues_count":0,"forks_count":15,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-17T19:18:18.958Z","etag":null,"topics":["annotation","java"],"latest_commit_sha":null,"homepage":"https://crossoverjie.top/2017/05/24/SSM14/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crossoverJie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-05-22T17:15:12.000Z","updated_at":"2021-12-14T06:06:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"cda1414d-2614-4a81-86cc-e01cf9ff1d62","html_url":"https://github.com/crossoverJie/SSM-REQUEST-CHECK","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FSSM-REQUEST-CHECK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FSSM-REQUEST-CHECK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FSSM-REQUEST-CHECK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FSSM-REQUEST-CHECK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crossoverJie","download_url":"https://codeload.github.com/crossoverJie/SSM-REQUEST-CHECK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250369554,"owners_count":21419239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","java"],"created_at":"2024-10-02T10:38:31.758Z","updated_at":"2025-04-23T04:27:51.302Z","avatar_url":"https://github.com/crossoverJie.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/crossoverJie/SSM-REQUEST-CHECK.svg?branch=master)](https://travis-ci.org/crossoverJie/SSM-REQUEST-CHECK)\n\n# 开发\nhttps://crossoverjie.top/2017/05/24/SSM14/\n\n# 预览\n![重复请求号01.jpg](https://ooo.0o0.ooo/2017/05/24/59245e69e35d5.jpg)\n![重复请求号02.jpg](https://ooo.0o0.ooo/2017/05/24/59245e6a643ea.jpg)\n![重复请求号03.jpg](https://ooo.0o0.ooo/2017/05/24/59245e6b55994.jpg)\n\n\n# 简介\n基于annotation的http去重插件：\n\n- `Redis`保存请求。\n- `Spring AOP` 进行切面。\n\n**后续会用`Spring Boot`重构**\n\n# 安装\n```\nhttps://github.com/crossoverJie/SSM-REQUEST-CHECK.git\n```\n\n```\ncd SSM-REQUEST-CHECK\n```\n\n```\nmvn clean\n```\n\n```\nmvn install\n```\n\n\n# 使用\n\n## 加入依赖\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.crossoverJie\u003c/groupId\u003e\n    \u003cartifactId\u003eSSM-REQUEST-CHECK\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 开启CGLIB代理\n\n\u003e 需要根据自己`web.xml`中定义的\n```xml\n    \u003c!-- Spring MVC servlet --\u003e\n    \u003cservlet\u003e\n        \u003cservlet-name\u003eSpringMVC\u003c/servlet-name\u003e\n        \u003cservlet-class\u003eorg.springframework.web.servlet.DispatcherServlet\u003c/servlet-class\u003e\n        \u003cinit-param\u003e\n            \u003cparam-name\u003econtextConfigLocation\u003c/param-name\u003e\n            \u003cparam-value\u003eclasspath:spring-mvc.xml\u003c/param-value\u003e\n        \u003c/init-param\u003e\n        \u003cload-on-startup\u003e1\u003c/load-on-startup\u003e\n        \u003casync-supported\u003etrue\u003c/async-supported\u003e\n    \u003c/servlet\u003e\n```\n`spring-mvc.xml`文件中配置：\n\n\n```xml\n\u003caop:aspectj-autoproxy proxy-target-class=\"true\"\u003e\u003c/aop:aspectj-autoproxy\u003e\n```\n\n## 使用注解\n```java\n    @CheckReqNo\n    @RequestMapping(value = \"/createRedisContent\",method = RequestMethod.POST)\n    @ResponseBody\n    public BaseResponse\u003cNULLBody\u003e createRedisContent(@RequestBody RedisContentReq redisContentReq){\n        BaseResponse\u003cNULLBody\u003e response = new BaseResponse\u003cNULLBody\u003e() ;\n\n        Rediscontent rediscontent = new Rediscontent() ;\n        try {\n            CommonUtil.setLogValueModelToModel(redisContentReq,rediscontent);\n            rediscontentMapper.insertSelective(rediscontent) ;\n            response.setReqNo(redisContentReq.getReqNo());\n            response.setCode(StatusEnum.SUCCESS.getCode());\n            response.setMessage(StatusEnum.SUCCESS.getMessage());\n        }catch (Exception e){\n            logger.error(\"system error\",e);\n            response.setReqNo(response.getReqNo());\n            response.setCode(StatusEnum.FAIL.getCode());\n            response.setMessage(StatusEnum.FAIL.getMessage());\n        }\n\n        return response ;\n\n    }\n```\n\n## 自定义缓存前缀、时间\n\u003e 默认缓存前缀是`reqNo`,时间为1天。\n\n```\n#redis前缀\nredis.prefixReq=reqNo\n#redis缓存时间 默认单位为天\nredis.day=1\n```\n\n# 联系作者\n- [crossoverJie@gmail.com](mailto:crossoverJie@gmail.com)\n\n![weixinchat.jpg](https://ooo.0o0.ooo/2017/04/25/58ff4d5fd9fa3.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossoverjie%2Fssm-request-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrossoverjie%2Fssm-request-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossoverjie%2Fssm-request-check/lists"}