• 基于RBAC的权限访问系统基础

    需要,基于RBAC的权限访问,采用SpringSecurity安全管理框架+SpringBoot+Mybatis数据库持久框架。数据库设计:user用户名:ennabled,accountNonExpired,accountNonLocked,CredentialsNonExpired默认为1role角色表:permission权限表:user_role 用户-角色中间表:ro...

    Java 2021年01月22日 1312 0
  • 接入谷歌Google人机验证:reCaptcha进行安全验证

    我们在开发网站的时候,经常需要各种人机验证,那我们就来学习下,网站如何接入谷歌Google人机验证:reCaptcha进行安全验证,本次使用的是 Google人机验证 3.0版本 Google人机验证V3recaptcha v3为每个请求返回一个没有用户摩擦的分数,评分是基于用户与您的站点的交互,并使您能够为您的站点采取适当的行动。大约0.5是阀值,低于这个阀值,就需要进行一些...

    Java 2021年01月22日 8495 0
  • Flink与Spring生态完美融合的脚手架工程

    还在为开发Flink流处理应用程序时无法像开发Spring Boot程序那么优雅的分层以及装配Bean而烦恼吗?你可能面临如下苦恼:1. 开发的Flink流处理应用程序,业务逻辑全部写在Flink的操作符中,代码无法复用,无法分层2. 要是有一天它可以像开发Spring Boot程序那样可以优雅的分层,优雅的装配Bean,不需要自己new对象好了3. 可以使用各种Spring生...

    Java 2021年01月22日 2453 0
  • 消息队列技术调研

    消息队列的协议 AMQP:高级消息队列协议(AMQP,Advanced Message Queuing Protocol),RabbitMQ 和 HornetQ 都实现了该协议。 优势:功能最丰富,能够适用最多的场景。 劣势:其实现上不轻量化。 应用场景:简单的pub/sub模型无法满足要求的场景。 ZeroMQ:这是一种协议,也是一个开源组件,无中心化的broker。 优势:...

    Java 2021年01月21日 1274 0
  • 如何在Spring Boot应用启动之后立刻执行一段逻辑

    1. 前言不知道你有没有接到这种需求,项目启动后立马执行一些逻辑。比如简单的缓存预热,或者上线后的广播之类等等。如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLineRunner和 ApplicationRunner来实现。2. CommandLineRunnerorg.springframework.boot.CommandLineRunne...

    Java 2021年01月21日 1183 0
  • JavaScript专业级处理货币类库Currency.js

    简要介绍Currency.js是一款专门处理货币值的开源免费的类库。它与Numeral.js非常相似,但是处理货币值上似乎要更专业。通过较灵活的API解决JavaScript常见的浮点问题,加减乘除的计算都可以做,处理货币的时候,还可以把分值单独提取出来,其格式转换的方法也相对工整。目前它在github拥有1.8k颗星,属于活跃项目。最新版本:2.0.3。Github地址htt...

    Java 2021年01月20日 5039 0
  • Elasticsearch全攻略

    时下不论是在全文搜索领域还是大数据即时处理领域ELK都一枝独秀,而ELK的核心在于Elasticsearch,ELK很秀源于Elasticsearch很棒。很多可能用过ELK但是对其核心Elasticsearch却知之甚少,本文我们就一起来学习Elasticsearch,从基本概念到生产使用一文全搞定。基础概念对于一个Elasticsearch(ES)的新手,首先需要学习一些基...

    Java 2021年01月20日 1612 0
  • 文件目录的增删改操作?java如何实时监控?

    前言有时候你可能有个疑问,IDE总是可以检测到外部文件是否发生了变化,比如你在某个类里面加了一些代码,这时候的IDE就会弹出一个框说你做了更改。再或者是某个文件夹下的文件发生了改变,比如新建了一个或者是删除了一个等等。这时候我们的IDE依然可以检测到。这个功能到底是如何实现的呢?这篇文章主要是研究NIO的其中一个类,叫做WatchService。也有一些其他的方式可以轻松地实现...

    Java 2021年01月19日 1155 0
  • Spring Cloud项目OAuth2授权验证终极必杀技

    Spring Cloud项目OAuth2授权验证终极必杀技一、OAuth2兴起背景 OAuth2是一种授权验证获取用户信息的标准,在传统的用户认证体系中,想要获取用户信息必须通过输入用户名和密码,不是很安全。必须记录登录的Session会话状态,十分不利。 (图片) 那么有没有一种标准,无需记录登录Session状态,就能获取用户信息呢?最早的思路是基于Spring Sessi...

    Java 2021年01月18日 2678 0
  • 从session、cookie到token以及JWT

    主要讲token和jwt技术,关于session和cookie文章很多。简单提一下session和cookie现在一般都是session和cookie一起用,一起提。但是他们俩其实不是一定要在一起。首先牢记一点,http协议是无状态的。就是说,一个请求过来,服务器不知道这个请求的用户是不是已经登录过了,不知道他的状态。只能再把这个请求重定向到登陆页面。这样用户就疯了,怎么一直让...

    Java 2021年01月18日 1041 0
  • Java编码技巧之高效代码50例

    1.常量&变量1.1.直接赋值常量值,禁止声明新对象直接赋值常量值,只是创建了一个对象引用,而这个对象引用指向常量值。反例:Long i = new Long(1L); String s = new String("abc");正例:Long i = 1L; String s = "abc";1.2.当成员变量值无需改变时,尽量定义为静态常量在类的每个对象实例中,每个...

    Java 2021年01月18日 1116 0
  • mybatis plus字段名称有下划线读取不到值的问题

    问题环境:springboot + mybatis-plus现在有这么一个实体package com.ct10000.sc.pc.videoauth.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableNa...

    Java 2021年01月18日 1434 0
  • Java最佳实践,提升代码可读性与可靠性

    从命名变量到设计软件架构,开发人员每天都要做出许多决定,而做出正确决定的最好的办法就是经验。虽然并非每个人都具备丰富的软件开发经验,但每个人都可以从他人身上学习。下面是我对 Java 开发总结的一些技巧,希望可以有助你提高 Java 代码的可读性和可靠性。1、编程原则写代码不是够用就好,因为这些代码不仅需要你维护,未来某个时刻还有其他人会加入维护的行列。软件开发的“二八定律”,...

    Java 2021年01月16日 1179 0
  • 线程安全—synchronized 和 ReentrantLock,看完后绝不后悔系列

    前面我们介绍了很多关于多线程的内容,在多线程中有一个很重要的课题需要我们攻克,那就是线程安全问题。线程安全问题指的是在多线程中,各线程之间因为同时操作所产生的数据污染或其他非预期的程序运行结果。线程安全1)非线程安全事例比如 A 和 B 同时给 C 转账的问题,假设 C 原本余额有 100 元,A 给 C 转账 100 元,正在转的途中,此时 B 也给 C 转了 100 元,这...

    Java 2021年01月16日 1022 0
  • 面试官Maven的package和install有什么区别?看看这篇文章

    1、Maven 是干什么的?Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven 的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟2、Maven 解决了什么痛点?① 添加第三方 jar 包手动会出现 jar 包冲突,版本冲突。通过统一的 Maven 仓库我们可以享受到一个完全统一规范的 jar 包管理体系。② jar 包之间的依赖关系M...

    Java 2021年01月16日 3147 0
  • JavaScript 中 10 个需要掌握基础的问题

    JavaScript 是一种客户端编程语言。全球超过**90%**的网站都在使用它,它是世界上最常用的编程语言之一。因此,今天我们业讨论 10 个有关 JavaScript 的常见问题。1.如何从数组中移除一个特定的项思路:首先,使用indexOf查找要删除的数组元素的索引(index),然后使用splice方法删除该索引所对应的项。splice()是一个非纯函数,通过删除现有...

    Java 2021年01月16日 985 0
  • 万字详解 Zookeeper 的五个核心知识点

    1 ZooKeeper简介ZooKeeper 是一个开源的分布式协调框架,它的定位是为分布式应用提供一致性服务,是整个大数据体系的管理员。ZooKeeper 会封装好复杂易出错的关键服务,将高效、稳定、易用的服务提供给用户使用。如果上面的官方言语你不太理解,你可以认为 ZooKeeper = 文件系统 + 监听通知机制。1.1 文件系统Zookeeper维护一个类似文件系统的树...

    Java 2021年01月15日 1043 0
  • 什么是分布式任务调度

    1.什么是任务调度我们可以先思考一下下面业务场景的解决方案:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行系统需要在信用卡到期还款日的前三天进行短信提醒。某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。12306会根据车次的不同,而设置某几个时间点进行分批放票。某网站为了实现天气实时展示,每隔5分钟就去天气服务器获取最新的实时天气信息。...

    Java 2021年01月14日 1108 0
  • java初探Tess4j识别图片文字

    想学习下识别图片中的文字,找到了Tess4j图文识别的方式,于是就初步探究下,玩下识别验证码。第一步,下载1、以3.4.2版本为例,下载Tess4j-3.4.2-src.zip。2、下载中文字库,chi_sim.traineddata。下载Tess4j参考:http://sourceforge.net/projects/tess4j/字库下载参考:https://github....

    Java 2021年01月13日 1505 0
  • 一种解决jar包冲突的实现:隔离机制

    业务背景随着业务的发展 和 架构的升级, 业务会越来越多的依赖公司内部提供的 中间件 ,如 rpc服务框架、分库分表框架、异步消息框架、公共工具包等等。每个中间件都有自己的 jar包依赖体系,最常用的如: logback、log4j、httpclient 、common-lang 、guava、zookeeper 等等 ,这些jar包依赖不仅会产生版本冲突,甚至会有jar包不兼...

    Java 2021年01月13日 1186 0
  • CodeReview规范

    CodeReview规范目标和原则提高代码质量,及早发现潜在缺陷,降低修改/弥补缺陷的成本促进团队内部知识共享,提高团队整体水平评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码可以被用来确认自己的设计和实现是一个清楚和简单的鼓励相互学习对方的长处和优点高效迅速完...

    Java 2021年01月13日 1514 0
  • Dubbo 版 Swagger 来啦

    背景Swagger 是一个规范和完整的前端框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 规范也逐渐发展成为了 OpenAPI 规范。Springfox 是一个集成了 Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的一些描述接口的注解自动生成 Swag...

    Java 2021年01月13日 1393 0
  • 干掉mapper.xml!MyBatis新特性动态SQL真香

    当我们使用MyBatis的时候,需要在mapper.xml中书写大量的SQL语句。当我们使用MyBatis Generator(MBG)作为代码生成器时,也会生成大量的mapper.xml文件。其实从MBG 1.3.6版本以后,MyBatis官方已经推荐使用Dynamic SQL,使用这一新特性基本就不用写mapper.xml文件了,使用起来非常方便,推荐给大家!Dynamic...

    Java 2021年01月09日 1205 0
  • MybatisPlus全套Api小解(一)

    前言如果说ssm比ssh究竟好用在哪里,快速开发体验在哪里的话,那必然就是mybatis了,如果还要找一个比mybatis更优秀的dao层框架,那必然就是他的大哥——mybatis plus。一、MybatisPuls是什么? MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,只是为了简化开发提交效率而存在。官...

    Java 2021年01月09日 5287 0
  • 分布式系统 session 共享解决方案 JWT 实战笔记

    序言在分布式系统中,session 共享是一个必须要解决的问题。JWT 作为将信息放在客户端的解决方案,设计的非常巧妙,本节就和大家一起学习下 JWT 的使用。JWT 的优势或者说为什么使用 jwt?JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。传统方式互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。 2、服务器验...

    Java 2021年01月08日 2008 0
  • Java中“附近的人”实现方案讨论及代码实现

    1|0前言在我们平时使用的许多app中有附近的人这一功能,像微信、qq附近的人,哈罗、街兔附近的车辆。这些功能就在我们日常生活中出现。像类似于附近的人这一类业务,在Java中是如何实现的呢?本文就简单介绍下目前的几种解决方案,并提供简单的示例代码注: 本文仅涉及附近的人这一业务场景的解决方案讨论,并未涉及到相关的技术细节和方案优化,各位看官可以放心阅读。2|0基本套路和方案目前...

    Java 2021年01月07日 1160 0
  • 可动态调节参数的线程池实现

    背景线程池是一种基于池化思想管理线程的工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发的任务处理场景,线程池的使用是必不可少的。在双11主图价格表达项目中为了提升处理性能,很多地方使用到了线程池。随着线程池的使用,逐渐发现一个问题,线程池的参数如何设置?线程池参数中有三个比较关键的参数,分别是corePoolSize(核心线程数)、maximu...

    Java 2021年01月07日 1376 0
  • API接口的安全设计验证—ticket,签名,时间戳

    概述与前端对接的API接口,如果被第三方抓包并进行恶意篡改参数,可能会导致数据泄露,甚至会被篡改数据,我主要围绕时间戳,token,签名三个部分来保证API接口的安全性1.用户成功登陆站点后,服务器会返回一个token,用户的任何操作都必须带了这个参数,可以将这个参数直接放到header里。2.客户端用需要发送的参数和token生成一个签名sign,作为参数一起发送给服务端,服...

    Java 2021年01月07日 1406 0
  • java枚举类型,为什么强烈推荐使用?看看它的7种场景方法

    枚举是 JDK 1.5 新增的数据类型,使用枚举我们可以很好的描述一些特定的业务场景,比如一年中的春、夏、秋、冬,还有每周的周一到周天,还有各种颜色,以及可以用它来描述一些状态信息,比如错误码等。枚举类型不止存在在 Java 语言中,在其它语言中也都能找到它的身影,例如 C# 和 Python 等,但我发现在实际的项目中使用枚举的人很少,所以本文就来聊一聊枚举的相关内容,好让朋...

    Java 2021年01月07日 1176 0
  • SpringBoot 集成小程序推送

    1、订阅消息包括两种一次性订阅消息一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。长期订阅消息一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用...

    Java 2021年01月06日 1439 0