spring boot 业务场景简单,代码完整的demo们

源码地址:https://github.com/zhzhair/spring-boot-examples.git 开发环境:windows,jdk8,spring boot2.1.4 背景:spring boot的特点之一是快速开发,快速集成微服务。本项目旨在提供spring boot常用的开发功能, 并且尽量粒度细化,避免参杂复杂的业务逻辑,后续还会持续更新spring boot的各个模块。 欢迎加QQ群:650195085学习交流。 一、项目名称(模板引擎,实现页面访问和传参): demo-thymeleaf 案例(http://http://localhost:8080和http://localhost:8080/demo): 1.导入导出excel 2.上传文件 其他项目相关: 1.全局异常处理<-->demo-aopAndWeb 二、项目名称(常用功能开发): demo-tools 案例(http://localhost:8080): 1.二维码 2.图片验证码 3.过滤敏感词 其他项目相关: 1.页面访问<-->demo-thymeleaf 2.敏感词放redis<-->demo-data-redis 3.敏感词放到的redis是配置类自定义的初始化对象<-->demo-aopAndWeb 三、项目名称(面向切面编程AOP,枚举等): demo-aopAndWeb 案列(http://localhost/swagger-ui.html#/ 和看控制台日志): 1.集成swagger: 对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口调用测试和 各种注释的可视化web界面。配置swagger的扫描包路径,api信息等,见配置类SwaggerConfig。项目中遇到的 下列注解都由swagger提供:@Api、@ApiOperation、@ApiModel、@ApiModelProperty访问http://localhost/swagger-ui.html#/就可以看到swagger文档,输入入参,点击try it out调接口运行; 2.注解@CrossOrigin(当然也可以写一个全局的过滤器),详情见类UserController.class。 3.项目中XssFilter类定义了跨站脚本攻击(xss攻击)过滤,用到了ESAPI安全处理的jar包; 4.自定义注解@LogForTimeConsumer实现了对方法的执行时间的日志输出; 5.自定义注解@LogForController实现了view层出参和入参的日志输出; 6.自定义注解@AutoValidate实现了对@RequestBody修饰的实体类(见类RegisterRequest.class)中属性的 合法性的校验(即属性的正则表达式校验); 7.自定义注解@AccessLimit实现了接口防刷的功能; 8.自定义注解@TokenValidate实现了用户是否登录的校验,必须登录的接口加此注解; 9.拦截器RequestTimeConsumingInterceptor实现了接口耗时统计; 10.拦截器RepeatSubmitInterceptor实现了重复提交的校验; 11.拦截器RateLimitInterceptor实现了服务器访问的限流操作; 12.类GlobalExceptionHandler实现了全局异常处理; 13.异步调用:UserController.class中登录和注册接口提供了异步操作的功能。只需要在异步调用的方法添加注解 @Async和在启动类加注解@EnableAsync,启动项目并调接口查看执行时间可以看到异步调用已经生效; 14.定时任务--启动类添加注解@EnableScheduling,用@Component放到定时任务的类上,@Scheduled放到定时任务的 方法上就可以实现定时任务,见类TaskTest.class; 15.定时任务里的方法内使用了常量和枚举的用法,以及读取配置文件和初始化实例的案例; 其他项目相关: 1.用户token放到了redis,重复登录校验用的是redis分布式锁<-->demo-data-redis

猜你喜欢

转载自www.cnblogs.com/zhzhair-coding/p/10744843.html
今日推荐