• Spring Cloud微服务架构中的数据权限DataPermision实现方案

    Spring Cloud微服务架构中的数据权限DataPermision实现方案一、出现原因 在Spring Cloud的微服务架构中,常见的权限控制除了菜单权限外,还有数据权限DataPermision。菜单权限主要用于控制用户角色所能访问的菜单以及页面按钮的显示与否,而数据权限则控制业务数据显示当前公司,还是所有公司,还是当前公司及其子公司的数据。 近几年Java项目中,数...

    Java 2020年03月13日 9885 0
  • java树形菜单制作

    实际开发中,可能经常需要开发树形菜单,本篇文章就讲述一下树形菜单的制作。用到的技术1、SpringMVC2、Spring3、mybatis4、easyui代码实现dto(适用于easyui的实体类)public class OrgnDto { private String id; private String text; private String iconCls; priv...

    Java 2020年03月12日 1542 0
  • Springboot 2.x 如何解决重复提交 (本地锁的实践)

    有没有遇到过这种情况:网页响应很慢,提交一次表单后发现没反应,然后你就疯狂点击提交按钮(12306就经常被这样怒怼),如果做过防重复提交还好,否则那是什么级别的灾难就不好说了。。。本文主要是应用 自定义注解、 spring AOP、· Guava Cache 生成一种本地锁,来达到的防重复提交效果,由于是基于内存的缓存,所以这种实现方式并不适用于分布式服务Guava是什么?gu...

    Java 2020年03月12日 1553 0
  • if-else代码优化的八种方案

    前言代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。优化方案一:提前return,去除不必要的else如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。优化前:if(condition){ //doSomething}el...

    Java 2020年03月11日 2114 0
  • Java 14 带来了 5 项新特性,能支持 H5 文本开发了

    Java 14预定于3月17日发布。那么,14版究竟有什么新功能,对于整天写代码、维护代码的Java开发者来说,哪些功能最有用呢?以下为译文:第14版包含的JEP(Java Enhancement Proposals,Java增强提案)比12版和13版加起来还要多。在这篇文章中,我将主要讨论以下几点:改进的switch表达式,第一次出现在Java 12和13中,在Java 14...

    Java 2020年03月11日 1449 0
  • windows下安装多个java版本出现'has value '1.8',but'1.7' is required'问题的解决方法

    因考虑到代码的可持续维护性,要求全部使用java7,自己又想在空闲时间学一些java8的新特性,故在安装完1.7之后又安装了1.8,导致eclisp在启动时报’has value ‘1.8’,but’1.7’ is required’的错误,在控制台使用Java -version进行查询发现,依然会报’has value ‘1.8’,but’1.7’ is required...

    Java 2020年03月07日 6647 0
  • 请不要在 JDK 7+ 中使用这个 JSON 包了

    【Json-lib 介绍】Json-lib 是以前 Java 常用的一个 Json 库,最后的版本是 2.4,分别提供了 JDK 1.3 和 1.5 的支持,最后更新时间是 2010年12月14日。虽然已经很多年不维护了,但在搜索引擎上搜索 "Java Json" 等相关的关键词发现好像一直还有人在介绍和使用这个库。项目官网是 http://json-lib.sourcefor...

    Java 2020年03月03日 6268 0
  • 手把手教你实现一个 JSON 解析器

    1. 背景JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。相对于另一种数据交换格式 XML,JSON 有着诸多优点。比如易读性更好,占用空间更少等。在 web 应用开发领域内,得益于 JavaScript 对 JSON 提供的良好支持,JSON 要比 XML 更受开发人员青睐。所以作为开发人员,如果有兴趣的话,还是应该深入了解一下 ...

    Java 2020年03月03日 1226 0
  • 终于明白为什么要加 final 关键字了

    在开发过程中,由于习惯的原因,我们可能对某种编程语言的一些特性习以为常,特别是只用一种语言作为日常开发的情况。但是当你使用超过一种语言进行开发的时候就会发现,虽然都是高级语言,但是它们之间很多特性都是不太相同的。现象描述在 Java 8 之前,匿名内部类在使用外部成员的时候,会报错并提示 “Cannot refer to a non-final variable arg ins...

    Java 2020年02月29日 1362 0
  • JDK13新特性,让开发效率更快一步

    推荐阅读:闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer肺炎在家“闭关”,阿里竟发来视频面试,4面顺利拿下offerJDK13到今天已经发布快2个月了,之前有零零散散的试过一些新的特性,但却没有整体的整理一下。想到作为Java开发,连使用的JDK(Java Developerment Kit)有什么特性都不清楚,实在是有些不应该,想要进阶为更有价值的J...

    Java 2020年02月27日 1563 0
  • 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端项目时关于架构的最佳实践。很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制。框架很多,但套路基本类似,帮你隐藏很多关于 HTTP 协议细节内容,专注功能开发。但对一个...

    Java 2020年02月24日 1291 0
  • OAuth2.0 技术选型参考

    1. 前言在使用 OAuth2.0 中 Authorization Server (授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如 QQ、微信、微博、github 等。我们的应用只作为 Client 进行注册接入即可。也就是说我们只需要实现 OAuth2.0 客户端的逻辑就可以了,无须关心授权服务器的实现。然而有时候我们...

    Java 2020年01月14日 1960 0
  • YYYY-MM-DD 的黑锅,我们不背

    写这篇博文是记录下跨年的bug。去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。今天逛技术论论坛正好遇到Java日期的操作bug。1 yyyy 和 YYYY别看字,看代码输出结果:2019-12-31 转 YYYY/MM/dd 格式: 2020/12/312020-01-01 ...

    Java 2020年01月11日 1634 0
  • java生成pdf

    直入正题:所需ar包具体代码:package com.medmeeting.core;import com.itextpdf.text.*;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;impor...

    Java 2020年01月09日 2395 0
  • String 有多长?

    1 String的形式public final class StringString类是由final修饰的,所以是不能被继承的①,我们在对字符串进行比较时,一般是期望对比其中的字符串是否一样,所以这里我们不能用"=="进行字符串的比较,而是需要使用"equals"方法②,因为使用==进行比较时,是比较的对象,只有指向同一个字符串对象的才会是true,否则就算字符串值相同也可能出...

    Java 2020年01月08日 1605 0
  • 5种创建Java对象的方式

    在本篇文章中,将介绍5种创建Java对象的方式。类是创建对象的基本模板,接下来将介绍5种不同的方式,利用Java类来实例化Java对象。1. 使用new关键字​ 采用new关键字实例化对象是Java中最为常见的方法,下面是采用new关键字实例化对象的示例。在开始之前,我们先准备好一个Java类:Student.java。package com.ramostear.oops;pu...

    Java 2020年01月08日 1482 0
  • 分布式任务调度xxl-job

    前言碎语在单机应用时期,任务调度一般都是基于spring schedule和集成quartz来实现的,当系统发展成分布式服务,应用多实例的时候,任务就会出现多次调用的问题,很多时候我们任务并不需要跑多次。解决方案有很多,最最简单粗暴的就是可以设置应用开关。其次就是集中式话任务管理调度。当然,quartz也有集群模式,但是基于api控制并不直观。下面介绍一个集中式的分布式任务调度...

    Java 2020年01月07日 1871 0
  • 分布式唯一ID生成器

    在应用程序中,经常需要全局唯一的ID作为数据库主键。如何生成全局唯一ID?首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作。缺点是字符串作为ID占用空间大,索引效率比整型低。如果采用整型作为ID,那么首先排除掉32位int类型,因为范围太小,必须使用64位long型。采用整型作为ID时,如何生成自增、全局唯一且不重复的...

    Java 2020年01月07日 1424 0
  • JavaEE技术点:MySQL目录及基本命令介绍

    1.MySQL目录介绍(1)首先来看MySQL的安装目录,如图1-1所示:图1-1 MySQL的安装目录(2)图1-1中的bin目录中存放的是二进制的可执行文件,如图1-2所示:图1-2 bin目录结构(3)图1-2中的mysqld.exe是服务器程序,必须先启动它,客户端才能连接上服务器。当MySQL服务启动,可以在任务管理器中的进程中发现该进程,如图1-3所示:图1-3 m...

    Java 2020年01月07日 1368 0
  • Mybatis-Plus 3.3.0 发布,让你专注业务快速敏捷开发

    Mybatis-Plus 3.3.0 发布了,Mybatis-Plus是一款MyBatis的增强工具包,简化 CRUD 操作。启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。Mybatis-Plus 启动注入非拦截实现、性能更优,让你专注业务快速敏捷开发更新日志:BaseMapper 接口两个 page 方法优化IService 以及 Serv...

    Java 2020年01月07日 2797 0
  • 甲骨文发布严重Java漏洞安全警报:攻击者可以控制和访问个人数据

    Oracle已针对Java漏洞发布了安全警报,如果利用此漏洞,攻击者可以控制和访问用户的个人信息。该漏洞意味着攻击者无需用户名或密码即可访问用户的数据。仔细阅读这本书,看来受害者可能成为攻击者的猎物,攻击者可以将用户的系统变成进行其他攻击的机器人。为了获得成功,用户必须成为恶意软件攻击的受害者。它将特别攻击那些访问旨在攻击具有Java漏洞的恶意网站的人。成功的利用会影响“用户系...

    Java 2020年01月03日 1319 0
  • Java中文转拼音开源库介绍

    开发中经常遇到中文转成拼音的时候。下面就总结一下目前在中文转拼音中遇到的坑,少让大家走弯路目前Java中文转拼音的开源项目类库有:PinYin4j和JPinYin和TinyPinYinPinYin4j:github地址:https://github.com/belerweb/pinyin4j是一个比较早的汉字转拼音的类库,功能比较强大。支持声调、方言及多音字识别设置外挂多音词库...

    Java 2020年01月02日 3996 0
  • 下次打死我也不敢随便改serialVersionUID了

    序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。类通过实现 java.io.Serializable 接口以启用其序列化功能。但是,还有一个知识点并未展开介绍,那就是关于serialVersionUID 。这个字段到底有什么用?如果不设置会怎么样?为什么《阿里巴巴Java开发手册》中有以下规定:背景知识在展开本文的介绍之前,先来简单介绍一些和序列化有关的知识,...

    Java 2019年12月31日 1360 0
  • Spring Boot 整合 Shiro-登录认证和权限管理

    这篇文章我们来学习如何使用 Spring Boot 集成 Apache Shiro 。安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求。在 Java 领域一般有 Spring Security、 Apache Shiro 等安全框架,但是由于 Spring Security 过于庞大和复杂,大多数公司会选择 Apache Shiro 来使用,这篇文章会先介...

    Java 2019年12月24日 1411 0
  • 什么是微服务?

    一、构建单体应用模型我们假设,您开始开发一个打车应用,打算与 Uber 和 Hailo 竞争。经过初步交流和需求收集,您开始手动或者使用类似 Rails、Spring Boot、Play 或者 Maven 等平台来生成一个新项目。该新应用是一个模块化的六边形架构,如下图(一个简单的打车应用)所示:该应用的核心是由模块实现的业务逻辑,它定义了服务、领域对象和事件。围绕核心的是与外...

    Java 2019年12月19日 1529 0
  • Java通用代码生成器光发布1.5.0 尝鲜版 2,支持 PDF 导出功能

    Java通用代码生成器光发布1.5.0 尝鲜版2,支持PDF导出功能此版本研发代号Kama 顿悟。支持一系列API改进,支持Oracle数据库。默认支持Excel和PDF导出功能。项目地址:https://gitee.com/jerryshensjf/LightSBMEU第三代动词算子式代码生成器:光SBMEU版本代码生成器支持前后端分离界面了简介第三代动词算子式代码生成器:光...

    Java 2019年12月18日 1730 0
  • 为什么禁止工程师直接使用日志系统(Log4j、Logback)中的API?

    作为 Java 程序员,我想很多人都知道日志对于一个程序的重要性,尤其是 Web 应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。所以,日志在 Java Web 应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章中,我会来介绍介绍这个容易被大家忽视,但同时也容易导致故障的知识点。Java 语言之所以强大...

    Java 2019年12月10日 1636 0
  • 认识JWT--JSON Web Token

    什么是JWTJSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。为什么要使用JWT随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过tok...

    Java 2019年12月03日 1691 0
  • 一个非常实用而且精妙的算法-并查集(java语言实现)

    在学习数据结构的时候,老师多少会提到并查集,他的应用也是超级广泛。本文首先会通过案例来对并查集有一个介绍。然后给出并查集的java实现。一、并查集原理话说在江湖上有很多门派,这些门派相互争夺武林霸主。毕竟是江湖中人,两个人见面一言不合就开干。但是打归打,总是要判断一下是不是自己人,免得误伤。 于是乎,分了各种各样的门派,比如说张无忌和杨过俩人要打架,就先看看是不是同一门派的,不...

    Java 2019年12月03日 1904 0
  • XXL-JOB v2.1.1 发布,分布式任务调度平台

    v2.1.1 Release Notes1、 调度中心日志自动清理功能(至此,调度中心/执行器均支持日志自动清理,过期天数均默认设置为30天):调度中心新增配置项("xxl.job.logretentiondays")日志保存天数,过期日志自动清理;解决海量日志情况下日志表慢SQL问题;限制大于等于7时生效,否则关闭清理功能,默认为30;2、 调度报表优化:新增日志报表的存储表...

    Java 2019年11月27日 1751 0