202010-10 SpringBoot如何整合redis实现过期key监听事件 可以用于简单的过期订单取消支付、7天自动收货场景中1、SpringBoot整合redis参考https://www.jb51.net/article/170687.htm2、打开redis服务的配置文件添加notify-keyspace-eventsEx如果是注释了,就取消注释Linux安装redis:https://www.jb51.net/article/193265.htmWindows安装redis:https://www.jb51.net/article/176040.htm3、在redis配置类@Configuration添加如下内容@BeanRedisMessageListenerContainercontainer(R... 继续阅读 >
202010-10 详解Springboot之接收json字符串的两种方式 第一种方式、通过关键字段@RequestBody,标明这个对象接收json字符串。还有第二种方式,直接通过request来获取流。在spring中,推荐使用。代码地址https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-json项目结构其实项目里面没啥类容,就是一个控制器和pom.xml配置配置fastjson添加fastjson的依赖到pom.xml中<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${... 继续阅读 >
202010-10 SpringBoot RestTemplate GET POST请求的实例讲解 一)RestTemplate简介RestTemplate是HTTP客户端库提供了一个更高水平的API。主要用于Rest服务调用。RestTemplate方法:方法组描述getForObject通过GET检索表示形式。getForEntityResponseEntity通过使用GET检索(即状态,标头和正文)。headForHeaders通过使用HEAD检索资... 继续阅读 >
202010-10 SpringBoot2.1.x,创建自己的spring-boot-starter自动配置模块操作 一)spring-boot-starter命名规则自动配置模块命名规则:xxx-spring-boot,如:aspectlog-spring-boot启动器命名规则:xxx-spring-boot-starter,如:aspectlog-spring-boot-starter如两者只有一个模块:建议以xxx-spring-boot-starter方式命名。springboot建议以xxx前缀的方式对自己的自动配置命名的。二)spring-boot-starter条件注解注解说明@ConditionalOnClass指定加载的类... 继续阅读 >
202010-10 Springboot之修改启动端口的两种方式(小结) Springboot启动的时候,端口的设定默认是8080,这肯定是不行的,我们需要自己定义端口,Springboot提供了两种方式,第一种,我们可以通过application.yml配置文件配置,第二种,可以通过代码里面指定,在开发中,建议使用修改application.yml的方式来修改端口。代码地址#通过yml配置文件的方式指定端口地址https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-demo2#硬编码的方式指定端口地址https://gitee.com/... 继续阅读 >
202010-10 Idea如何导入一个SpringBoot项目的方法(图文教程) 最近公司要求开发工具要用Idea,作为一个eclipse的老员工,记录一下Idea中遇到的坑刚开始用Idea从Git上导入一个项目时,遇到了很多坑,网上有很多方法,我不多做介绍。只说明一下我使用的方法。1.本地新建一个文件夹,从git上导入项目到本地文件夹。(git的相关使用请自行百度,这里只讲Idea的使用方法)2.将这个文件夹直接拖到Idea的启动图标上。或者,从Idea中File-Open打开你项目的文件夹3.新导入的SpringBoot项目,需要设置jdk... 继续阅读 >
202010-10 SpringBoot项目的logback日志配置(包括打印mybatis的sql语句) 关于logback日志的详解见这位仁兄的博客:SpringBoot-日志配置(超详细)我在这就开门见山直接介绍我们项目日志的配置使用吧!~1、基本介绍默认情况下,SpringBoot项目就会用Logback来记录日志,并用INFO级别输出到控制台。如下图:实际开发中我们不需要直接添加logback日志依赖。你会发现spring-boot-starter其中包含了spring-boot-starter-logging,该依赖内容就是SpringBoot默认的日志框架logback。日志级别从低到高分... 继续阅读 >
202010-10 SpringBoot Security前后端分离登录验证的实现 最近一段时间在研究OAuth2的使用,想整个单点登录,从网上找了很多demo都没有实施成功,也许是因为压根就不懂OAuth2的原理导致。有那么几天,越来越没有头绪,又不能放弃,转过头来一想,OAuth2是在Security的基础上扩展的,对于Security自己都是一无所知,干脆就先研究一下Security吧,先把Security搭建起来,找找感觉。说干就干,在现成的SpringBoot2.1.4.RELEASE环境下,进行Security的使用。简单的Security的使用就不说了,目... 继续阅读 >
202010-10 SpringBoot @ControllerAdvice 拦截异常并统一处理 在spring3.2中,新增了@ControllerAdvice注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice文档一、介绍创建MyControllerAdvice,并添加@ControllerAdvice注解。packagecom.sam.demo.controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.WebDataBinder;importorg.springframework.web.bind.annotation.*;impo... 继续阅读 >
202010-10 SpringBoot处理全局统一异常的实现 在后端发生异常或者是请求出错时,前端通常显示如下WhitelabelErrorPageThisapplicationhasnoexplicitmappingfor/error,soyouareseeingthisasafallback.FriJun0715:38:07CST2019Therewasanunexpectederror(type=NotFound,status=404).Nomessageavailable 对于用户来说非常不友好。本文主要讲解如何在SpringBoot应用中使用统一异常处理。实现方式第一种:使用@ControllerAdvice和@ExceptionH... 继续阅读 >
202010-10 解决springboot中配置过滤器以及可能出现的问题 在springboot添加过滤器有两种方式:1、通过创建FilterRegistrationBean的方式(建议使用此种方式,统一管理,且通过注解的方式若不是本地调试,如果在filter中需要增加cookie可能会存在写不进前端情况)2、通过注解@WebFilter的方式通过创建FilterRegistrationBean的方式创建多个filter以及设置执行顺序:1、创建两个实现Filter接口的类TestFilter1、TestFilter2packagecom.aoxun.core.filter;importjava.io.IOException;impor... 继续阅读 >
202010-10 SpringBoot @Validated注解实现参数分组校验的方法实例 前言在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据。1、首先还是先导包,导入pom文件。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>2、解释一下注解的作用@Null限制只能为null@NotNull限制必须不为null@NotEmpty只作用于字符串类型,字符串不为空,并且长度不为0@Not... 继续阅读 >
202010-10 SpringBoot中的静态资源访问的实现 一、说在前面的话我们之间介绍过SpringBoot自动配置的原理,基本上是如下:xxxxAutoConfiguration:帮我们给容器中自动配置组件;xxxxProperties:配置类来封装配置文件的内容;二、静态资源映射规则1、对哪些目录映射?classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public//:当前项目的根路径2、什么意思?就我们在上面五个目录下放静态资源(比如:a.js等),可以直接访问(http://local... 继续阅读 >
202010-10 详解SpringBoot之访问静态资源(webapp...) springboot访问静态资源,默认有两个默认目录,一个是 classpath/static目录(src/mian/resource)一个是ServletContext根目录下(src/main/webapp )这在里可能有小伙伴对classpath不怎么了解,这里简要的介绍下,classpath 即WEB-INF下面的classes目录,在springboot项目中可能就是,src/main/resource目录。1,classpath目录下-访问默认文件夹名为static目录截图:访问截图:这里有人就想说,我可不可以... 继续阅读 >
202010-10 SpringBoot+RabbitMQ方式收发消息的实现示例 本篇会和SpringBoot做整合,采用自动配置的方式进行开发,我们只需要声明RabbitMQ地址就可以了,关于各种创建连接关闭连接的事都由Spring帮我们了~交给Spring帮我们管理连接可以让我们专注于业务逻辑,就像声明式事务一样易用,方便又高效。祝有好收获,先赞后看,快乐无限。本文代码: https://gitee.com/he-erduo/spring-boot-learning-demo https://github.com/he-erduo/spring-boot-learning-demo1.... 继续阅读 >
202010-10 分析SpringBoot的启动原理 背景1>大家都知道SpringBoot是通过main函数启动的,这里面跟踪代码到处都没有找到while(true),为什么启动后可以一直跑?2>SpringBoot默认使用tomcat作为web容器。大家也可以通过在pom文件中exclusion掉tomcat,denpendencyjetty的方法来使用jetty。那SpringBoot是怎么做到在不同web容器之间切换的呢?3>传统的web容器比如jetty本质上是直接通过javastart.jar来启动,之后来加载spring上下文的,SpringBoot通过main函数是怎... 继续阅读 >