202012-17 利用Springboot实现Jwt认证的示例代码 JSONWebToken是目前最流行的跨域认证解决方案,,适合前后端分离项目通过RestfulAPI进行数据交互时进行身份认证关于Shiro整合JWT,可以看这里:Springboot实现Shiro+JWT认证概述由于概念性内容网上多的是,所以就不详细介绍了具体可以看这里:阮一峰大佬的博客我总结几个重点:JWT,全称JsonWebToken,是一种令牌认证的方式长相:头部:放有签名算法和令牌类型(这个就是JWT)载荷:你在令牌上附带的信息:比如用户的id,... 继续阅读 >
202012-17 SpringBoot如何动态改变日志级别 前言关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error;这时候如果项目中出现一些未知异常,需要用到很详细的日志信息,此时如果项目中没有动态改变日志级别的机制,排查问题将很棘手。日志系统我们常用的一些日志系统包括:Log4j2、Logback、JavaUtilLogging;我们想动态改变日志的级别,前提是这些日志系统都支持我们直接设置日志等级,当... 继续阅读 >
202012-17 springboot jar包外置配置文件的解决方法 为什么要搞个解决方案呢?按照网上教程,springboot项目中,配置文件有优先级,其中,放在根目录下的config文件夹中优先级最高;根目录下次之;然后是resources/config/;resources/下优先级最低。而加载顺序刚好反过来,resources/下最先加载,而/config/最后加载。然后在命令行方式下,指定一下这个配置文件的路径,就可以了,云云。也许事实就是如此的吧,但我试来试去,总不成功,系统死活都要读resources/下,这个优先级最低... 继续阅读 >
202012-17 springboot结合ehcache防止恶意刷新请求的实现 说明我们在把开发好的网站上线之前一定要考虑到别人恶意刷新你的网页这种情况,最大限度的去限制他们。否则往往这将搞垮你的应用服务器,想象一下某个恶意用户利用众多肉鸡在1分钟内请求你网页几十万次是个什么情形?部分内容参考网络。要达到什么效果?我限制请求的用户,根据来访IP去记录它N分钟之内请求单一网页的次数,如果超过N次我就把这个IP添加到缓存黑名单并限制它3小时之内无法访问类型网页。效果图1分钟内请求单网页超... 继续阅读 >
202012-17 SpringBoot集成nacos动态刷新数据源的实现示例 前言因为项目需要,需要在项目运行过程中能够动态修改数据源(即:数据源的热更新)。这里以com.alibaba.druid.pool.DruidDataSource数据源为例第一步:重写DruidAbstractDataSource类这里为什么要重写这个类:因为DruidDataSource数据源在初始化后,就不允许再重新设置数据库的url和userNamepublicvoidsetUrl(StringjdbcUrl){if(StringUtils.equals(this.jdbcUrl,jdbcUrl)){return;}//重写的时候,需要... 继续阅读 >
202012-16 SpringBoot使用Nacos配置中心的实现 本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心。1.Nacos简介Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。Nacos基本上支持现在所有类型的服务,例如,Dubbo/gRPC服务,SpringCloudRESTFul服务或Kubernetes服务。尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos,本文主要介绍Nacos配... 继续阅读 >
202012-14 Docker运行springboot项目的实现 简介:Docker运行springboot项目其实配置非常简单,跟咱们直接到Linux上运行springboot是一样一样的。开始一:咱们首先要有一个运行Docker环境第一步:使用yum安装(CentOS7下)Docker要求CentOS系统的内核版本高于3.10,查看本页面的前提条件来验证你的CentOS版本是否支持Docker。通过 uname-r 命令查看你当前的内核版本[root@iZbp1gp1t778obaz5m8vk8Z~]#uname-r3.10.0-957.21.3.el7.x86_64第二步:安... 继续阅读 >
202012-14 SpringBoot接入支付宝支付的方法步骤 支付宝今年推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大),老转账接口alipay.fund.trans.toaccount.transfer将不再维护,新老接口的一个区别就是新接口采用的证书验签方式。使用新接口要将sdk版本升级到最新版本,博主升级时最新版本是4.10.97。接下来看集成步骤1.将支付宝开放平台里下载的3个证书放在resources下面2.写支付宝支付的配置文件alipay.propertiesalipay.appId=你的应用idalipa... 继续阅读 >
202012-14 springboot实现异步调用@Async的示例 在后端开发中经常遇到一些耗时或者第三方系统调用的情况,我们知道Java程序一般的执行流程是顺序执行(不考虑多线程并发的情况),但是顺序执行的效率肯定是无法达到我们的预期的,这时就期望可以并行执行,常规的做法是使用多线程或线程池,需要额外编写代码实现。在spring3.0后引入了@Async注解,使用该注解可以达到线程池的执行效果,而且在开发上非常简单。一、概述springboot是基于spring框架的,在springboot环境下演示@Asyn... 继续阅读 >
202012-10 Springboot集成graylog及配置过程解析 graylog配置springboot配置依赖compilegroup:'de.siegmar',name:'logback-gelf',version:'2.0.0'logback.xml<configuration><!--配置控制台的输出日志--><appendername="consoleLog"class="ch.qos.logback.core.ConsoleAppender"><encoderclass="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><!--定义日志输出的格式--><layoutclass="ch.qos.logback.classic.PatternLayout"><pa... 继续阅读 >
202012-10 springboot如何读取application.yml文件 现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形。一、概述开发过程中经常遇到要读取application.yml文件中的属性值,本文总结几种读取的方式,供参考。二、详述我这里使用的是springboot-2.1.2.RELEASE版本,这里使用的是application.properties的配置方式,和使用application.yml的方式是一样的。下面是application.properties文件的内容cn.com.my.test1=test1cn.com.my.test2=test... 继续阅读 >
202012-10 如何在springboot中使用定时任务 在日常的开发过程中经常使用到定时任务,在springMVC的开发中,经常和quartz框架进行集成使用,但在springboot中没有这么做,而是使用了java的线程池来实现定时任务。一、概述 在springboot中使用定时任务非常简单,只需要简单的几步即可完成。二、详述在springboot中要使用定时任务,首先要保证环境是springboot的,这里使用的是springboot-2.1.2.release版本。在启动类上加@EnableScheduling注解,如下,packagecom.exampl... 继续阅读 >
202012-07 SpringBoot生成二维码的实现 效果图步骤maven依赖<!--生成二维码--><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.0</version></dependency>工具类packagecom.bennyrhys.mall.util;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.WriterException;importcom.google.zxing.client.j2se.MatrixToImageWriter;importcom.google.zxing.common.BitMatrix;impor... 继续阅读 >
202012-07 Springboot简单热部署实现步骤解析 最近开始学习使用springboot但springboot项目和之前的ssm等各种框架项目有所不同,本身集成了很多繁琐的东西,但一些小功能还需自己配置。下面开始配置热部署。首先当然是导入热部署的依赖。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>还有pom文件下的plugin<plugin><groupId>org.springfra... 继续阅读 >
202012-05 使用Springboot+poi上传并处理百万级数据EXCEL 1Excel上传针对Excel的上传,采用的是比较常规的方法,其实和文件上传是相同的。具体源码如下:@PostMapping(value="",consumes="multipart/*",headers="content-type=multipart/form-data")publicMap<String,Object>addBlacklist(@RequestParam("file")MultipartFilemultipartFile,HttpServletRequestrequest){//判断上传内容是否符合要求StringfileName=multipartFile.getOriginalFilen... 继续阅读 >
202012-04 springboot集成springsecurity 使用OAUTH2做权限管理的教程 SpringSecurityOAuth2主要配置,注意application.yml最后的配置resourcefilter顺序配置,不然会能获取token但是访问一直没有权限WebSecurityConfigurerAdapter所在服务器的web配置AuthorizationServerConfigurerAdapter认证服务器配置ResourceServerConfigurerAdapter资源服务器配置这两个配置在OAuth2Config.java权限有几种模式:“authorization_code”,“client_credentials”,“refresh_token”,“password”,“i... 继续阅读 >