源码地址:https://github.com/zhzhair/spring-boot-examples.git

开发环境:windows,jdk8,spring boot2.1.4

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

背景: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.敏感词放redisdemo-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

 

四、项目名称(netty服务端和客户端):
  demo-netty
案例:
  1.服务端:spring-boot-netty-server,客户端:spring-boot-netty-client,先启动服务端的启动类,再启动客户端的启动类,从控制台能看到已完成从客户端发起请求--服务端处理请求并返回数据--
  客户端接收到数据并做后续处理的过程;
  2.项目对架构做了封装,服务端每次只需要到msg.xml配置请求码和处理类(处理类都放在service文件夹下),就可以实现一次调用需要的功能。客户端也是java写的,但是不推荐java写客户端(我只会Java,方便测试^_^),客户端对应请求码和相应的处理类是在Factory类。

五、项目名称(发送邮件):
  demo-mail
案例(http://localhost/swagger-ui.html#!/):
  1.发送文本邮件;
  2.发送html文件;
  3.发送带附件的邮件。

其他项目相关:
  1.swagger接口文档<=>demo-aopAndWeb
  2.打印执行时间,输入输出参数的日志


六、项目名称(websocket实现聊天功能和监控功能)
  demo-websocket
案例(http://localhost:8080/websocket和http://localhost:8080/system):
  1.访问聊天页面websocket.html,打开多个页面模拟多个客户端,输入内容点击Send就可以聊天了;
  2.访问监控页面system.html,能看到服务器端给html页面发送的消息。

 
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄