# springboot-rabbit **Repository Path**: manoncat01/springboot-rabbit ## Basic Information - **Project Name**: springboot-rabbit - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: dependabot/maven/com.google.guava-guava-29.0-jre - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-06-20 - **Last Updated**: 2022-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目部署 1. 修改resources下配置 2. 执行resources下db中sql文件 ## 自定义注解实现Token校验幂等性 ```java //1.自定义注解@ApiIdempotent @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface ApiIdempotent { } // 2.拦截器 public class ApiIdempotentInterceptor implements HandlerInterceptor { } // 3.处理业务逻辑 @Service public class TokenServiceImpl implements TokenService { } // 4.拦截器注册 // 4.1本例子 @SpringBootApplication @MapperScan("com.wangzaiplus.test.mapper") public class TestApplication extends WebMvcConfigurerAdapter { //··· @Override public void addInterceptors(InterceptorRegistry registry) { // 接口幂等性拦截器 registry.addInterceptor(apiIdempotentInterceptor()); super.addInterceptors(registry); } @Bean public ApiIdempotentInterceptor apiIdempotentInterceptor() { return new ApiIdempotentInterceptor(); } } //4.2 标准添加 //————————————————————————————————————————————————————————— @Configuration public class WebAppConfigurer implements WebMvcConfigurer { /** * 注入自定义拦截器到该配置类中 */ @Autowired private MyInterceptor myInterceptor; /** * 解决跨域问题 * @param registry */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowCredentials(true) .allowedHeaders("*") .allowedOrigins("*") .allowedMethods("*"); } /** * 配置不需要拦截的请求 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { String[] patterns = new String[]{"/login","/**/*.html","/image/*","/","/static/**"}; registry.addInterceptor(myInterceptor) .addPathPatterns("/**") // 拦截的访问路径,拦截所有 .excludePathPatterns(patterns); // 排除的请求路径(不会被拦截),排除静态资源路径 } /** * 配置图片请求的映射 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/image/**").addResourceLocations("D:\\userImages"); } } ``` 测试 ```http request #请求token http://localhost:8088/token #测试token (POST) http://localhost:8088/test/testIdempotence ```