• Springboot过滤器和拦截器详解及使用场景

    一、过滤器和拦截器的区别1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑。而过...

    Java 2020年12月08日 104 0
  • 大牛教大家如何用SpringBoot技术快速实现天气预报系统

    从一个天气预报系统讲起本节通过Spring Boot技术快速实现一个天气预报系统。通过这个系统,一方面可以了解Spring Boot的全面用法,为后续创建微服务应用打下基础;另一方面,该系统会作为本节进行微服务架构改造的非常好的起点。下面以前面创建的hello-world应用作为基础进行改造,成为新的应用micro-weather-basic。开发环境为了演示本例,需要采用如下...

    Java 2020年12月08日 108 0
  • 腾讯牛逼!终于开源了自家的 JDK——Kona

    是的,继阿里 2019/03 开源基于 OpenJDK 的长期支持版本 Alibaba Dragonwell 之后,腾讯也发布了自家的开源免费的 JDK 版本——Tencent Kona,必须替小马哥宣传一波。看了下 Github 腾讯开源版 JDK 的发布记录:最早是在 2019/11/04 这天发布的 Tencent Kona v8.0.0 版本,没错,最近栈长村里通网了,...

    Java 2020年12月07日 140 0
  • Java 8时间类,越用越香

    为什么会在Jdk8中加入很多时间类非线程安全java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。Date date = new Date(); for (int i = 0; i < 100; i++) {    new Thread(new Runnable() {     ...

    Java 2020年12月07日 108 0
  • 不会吧,居然现在还没有人知道JDBC的核心API吗?

    一、常用JDBC API在java.sql包中包含体现JDBC基本功能的若干接口和类:1.Driver 接口:代表驱动程序2.DriverManager 类:驱动程序管理员3.Connection 接口:代表数据库连接4.Statement 、PreparedStatement、CallableStatement 接口:代表数据库操作对象5.ResultSet 接口:代表结果集...

    Java 2020年12月06日 123 0
  • Java 实现6种负载均衡算法

    1、完全随机算法缺点:所有服务器的访问概率都是相同的。package com.example.demo.core.random; import java.util.Arrays; import java.util.List; import java.util.Random; /** * 负载均衡算法 * 完全随机算法 */ public class RandomS...

    Java 2020年12月06日 95 0
  • SpringBoot中如何灵活的实现接口数据的加解密功能?

    数据是企业的第四张名片,企业级开发中少不了数据的加密传输,所以本文介绍下SpringBoot中接口数据加密、解密的方式。一、加密方案介绍二、实现原理三、实战四、测试五、踩到的坑一、加密方案介绍对接口的加密解密操作主要有下面两种方式:1.自定义消息转换器优势:仅需实现接口,配置简单。劣势:仅能对同一类型的MediaType进行加解密操作,不灵活。2.使用spring提供的接口Re...

    Java 2020年12月04日 120 0
  • Spring @Async 使用

    开启异步支持@Configuration @EnableAsync public class SpringAsyncConfig { ... } 默认情况下,@EnableAsync检测Spring的@Async注释和EJB 3.1 javax. EJB .异步;此选项还可用于检测其他用户定义的注释类型。@Async注解使用无返回值@Async public void asyn...

    Java 2020年12月03日 96 0
  • 消息中间件RocketMQ

    RocketMQ的前世今生RocketMQ是一款阿里巴巴开源的消息中间件,在2017年9月份成为Apache的顶级项目,是国内首个互联网中间件在 Apache 上的顶级项目。RocketMQ的起源受到另一款消息中间件Kafka的启发。最初,淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容。为了进一步降低成本和提升写入性...

    Java 2020年12月03日 115 0
  • SpringBoot中的定时任务的同步与异步你确定真的知道?

    定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择的时候提供一定的参考。本篇要点介绍Timer实现定时任务。介绍ScheduledExecutorService实现定时任务。介绍SpringBoot使用SpringTask实现定时...

    Java 2020年12月02日 139 0
  • springboot 排除自动配置的 4 种方法

    Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。比如:数据源、邮件,这些都是提供了自动配置的,我们需要排除 Spring Boot 的自动化配置,交给我们自己来自定义,该如何做呢?今天栈长给你介绍 4 种排除方式,总有一种能帮到你!方法1使...

    Java 2020年12月02日 96 0
  • 从零开始搭建Kafka+SpringBoot分布式消息系统

    前言由于kafka强依赖于zookeeper,所以需先搭建好zookeeper集群。由于zookeeper是由java编写的,需运行在jvm上,所以首先应具备java环境。(ps:默认您的centos系统可联网,本教程就不教配置ip什么的了)(ps2:没有wget的先装一下:yum install wget)(ps3:人啊,就是要条理。东边放一点,西边放一点,过段时间就不知道自...

    Java 2020年12月02日 86 0
  • springboot中定时任务执行Quartz的使用

    环境:springboot2.2.11.RELEASE2种方式执行定时任务1、通过springboot的方式2、使用Quartz实现定时任务方式一:通过springboot的定时任务1、开启定时任务功能@EnableScheduling@SpringBootApplication @EnableScheduling public class SpringBootQuartzSc...

    Java 2020年12月02日 192 0
  • Spring Boot Admin快速打造监控平台

    使用过Spring boot的开发者都知道actuator,它是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。但比较遗憾的是没有可视化界面,只能通过干燥的json数据来查看相应的指标,如下图:今天我们介绍一个可视化的监控指标平台Spring Boot Admin,它利用sprin...

    Java 2020年12月01日 122 0
  • 优秀的Web图片预览+图片裁剪插件,分享给需要的开发者

    介绍Viewer.js 是一款强大的图片预览查看器,之前在做项目的时候遇到的是无法给网页中的图片添加一个强大的预览功能,而Viewer.js刚好满足了我的需求。本文就简单的介绍一下这样一个神奇的图片预览插件:Github//原生版本 https://github.com/fengyuanchen/viewerjs //jquery版本 https://github.com/f...

    Java 2020年12月01日 146 0
  • Java高级特性——注解:注解实现Excel导出功能

    注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套“注解驱动编程”。这听起来高大上,但毕竟是框架的事,我们也能用好注解吗?的确,我们很少有机会自己写注解,导致我们搞不清楚注解是怎么回事,更别提用好注解了。既然这样,我们就从具体的工作出发,开发一个 Excel 导出功能。我相信,你在搞懂这个例子后,就能明白注解是怎么个用法。Excel 导出-需求拆解在后...

    Java 2020年12月01日 112 0
  • 手写一个注解实现接口单位时间内的访问频率的拦截器

    目标相信大家都听过接口安全,接口限流等这些词语,那么本篇文章就是从最基本的问题开始,带大家手写一个控制接口单位时间内访问频率的demo。好了,下面开始上代码。环境+依赖spring boot工程就不在此搭建了,小编直接贴出核心依赖 <dependency> <groupId>org.springframework.boot</groupId&...

    Java 2020年11月30日 122 0
  • 架构师之路:微服务技术选型

    作为一名架构师,需要规划产品技术路线,负责技术选型。而技术栈选型主要参考以下几个标准:安全稳定,不能经常被爆出安全漏洞开源社区活跃度,加入Apache的组件优先考虑一线互联网公司落地产品,有大公司为其背书文档阅读性好本篇为大家带来微服务架构的后端技术选型,当你需要进行技术选型时,可以参照他来设计自己的决策树。开发语言JAVA主流编程语言,适合构建大型后台服务GolangGo语言...

    Java 2020年11月26日 195 0
  • SpringBoot2 整合OAuth2实现统一认证

    关于OAuth2不做介绍了,网络太多了。环境:2.2.11.RELEASE + OAuth2 + Redisredis用来实现token的存储。pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-...

    Java 2020年11月25日 182 0
  • SpringBoot2 整合 OAuth2 资源认证(保护)

    接着上一篇:SpringBoot2 整合OAuth2实现统一认证上一篇整合介绍了OAuth2的认证服务,接下来利用认证服务提供的token来包含我们的资源。环境:2.2.11.RELEASE + OAuth2 + Redispom.xml<dependency> <groupId>org.springframework.boot</group...

    Java 2020年11月25日 218 0
  • JVM整体结构、执行流程以及2种架构模型

    JVM整体结构HotSpot VM 是目前市面上高性能虚拟机的代表作之一。方法区和堆:多线程共享虚拟机栈、本地方法栈、程序计数器:每个线程独有一份执行引擎:包含三部分:解释器,及时编译器(后端编译器),垃圾回收器它采用解释器与即时编译器并存的架构。在今天,Java 程序的运行性能早已脱胎换骨,已经达到了可以和 C/C++ 程序一较高下的地步。Java 代码执行流程只是能生成被 ...

    Java 2020年11月23日 121 0
  • 工作流Activiti流程图各元素之任务单元介绍

    在工作流Activiti的使用中,任务是不可或缺的元素,通过各种任务,来完成作业系统中各个环节的执行,任务分为用户任务、脚本任务、Java服务任务、邮件任务、手工任务、业务规则任务、调用活动(子流程)任务,下面就一一介绍。一、用户任务用户任务用来设置必须由人员完成的工作。 当流程执行到用户任务,会创建一个新任务, 并把这个新任务加入到分配人或群组的任务列表中。二、脚本任务脚本...

    Java 2020年11月23日 215 0
  • 自己动手编写一个Mybatis插件:Mybatis脱敏插件

    1. 前言在日常开发中,身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。否则容易造成个人隐私泄露,客户资料泄露,给不法分子可乘之机。但是数据脱敏不是把敏感信息隐藏起来,而是看起来像真的一样,实际上不能是真的。我以前的公司就因为不重视脱敏,一名员工在离职的时候通过后台的导出功能导出了核心的客户资料卖给了竞品,给公司造成了重大的损失。当然这里有数据管理的原因,但是脱敏仍...

    Java 2020年11月22日 153 0
  • SpringBoot+shiro+mybatis实现权限登录

    SpringBoot+shiro+mybatis+Thymeleaf实现权限登录系统记录一下,学习shiro的一个小Demo:1.首先是底层数据库:-- ---------------------------- -- Table structure for role -- ---------------------------- CREATE TABLE `role` ( ...

    Java 2020年11月21日 135 0
  • SpringBoot RabbitMQ消息可靠发送与接收

    环境: springboot2.2.11.RELEASE + RabbitMQ3.7.4RabbitMQ在以下情况会出现消息的丢失:交换机、队列、消息未持久化,mq重启后会出现消息丢失。生产者发出的消息第一步是投递到交换机,这一步可能因为网络原因导致失败。消息正常投递到交换机后,通过路由key路由到队列的时候出现失败。(没有符合的队列)代码层面,配置层面,考虑不全导致消息丢失。...

    Java 2020年11月19日 163 0
  • Spring Security登录优雅集成图形验证码

    前言在SpringSecurity的默认登录支持组件formLogin中没有提供图形验证码的支持,目前大多数的方案都是通过新增Filter来实现。filter的方式可以实现功能,但是没有优雅的解决, 需要重新维护一套和登录相关的url,例如:loginProccessUrl,loginFailUrl,loginSuccessUrl,从软件设计角度来讲功能没有内聚。下面为大家介绍...

    Java 2020年11月19日 160 0
  • SpringBoot开发自己的Starter

    SpringBoot starter机制SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过class...

    Java 2020年11月19日 177 0
  • Spring Boot 优雅地实现接口参数校验

    今天继续为大家分享在工作中如何优雅的校验接口的参数的合法性以及如何统一处理接口返回的json格式。每个字都是干货,原创不易,分享不易。validation主要是校验用户提交的数据的合法性,比如是否为空,密码是否符合规则,邮箱格式是否正确等等,校验框架比较多,用的比较多的是hibernate-validator, 也支持国际化,也可以自定义校验类型的注解,这里只是简单地演示校验框...

    Java 2020年11月18日 150 0
  • Spring Boot如何利用AOP巧妙记录操作日志?

    本篇要点简要回顾SpringAOP的相关知识点:关键术语,通知类型,切入点表达式等等。介绍SpringBoot快速启动测试AOP,巧妙打印日志信息。简单回顾SpringAOP的相关知识点SpringAOP的相关的知识点包括源码解析,为了加深印象,这边再做一个简短的回顾:1、AOP关键术语切面(Aspect):也就是我们定义的专注于提供辅助功能的模块,比如安全管理,日志信息等。连...

    Java 2020年11月18日 163 0
  • 工作流Activiti初体验及在数据库中生成的表

    工作流Activiti内置了一些表,一共是28张,在我们项目启动的时候会在我们配置的数据库中创建这些表,下面就搭建一个小demo,去look一下Activiti生产的这些表。首先到Spring的官网,找到生成模板工程的地方(https://start.spring.io/),生成项目模板:把生成的模板工程,导入到开发工具中,这里以eclipse为例,导入的项目如下:在pom.x...

    Java 2020年11月16日 163 0