摘要:章节目录 "第一章 spring boot 2.x基础及概念入门" "1.1.spring boot 产生的背景及其优势" "1.2.spring boot 2.x 新特性说明" "1.3.helloworld及项目结构介绍" "1.4.IDEA结合spring boot开发技巧" "第二章 RES 阅读全文
posted @ 2019-10-18 22:23 字母哥博客 阅读 (209) 评论 (1) 编辑
摘要:一、Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现、服务配置管理。 Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:Eureka、consul等,支持服务的健康检查。 Nacos作为服务配置中心,可以替换Spring 阅读全文
posted @ 2019-12-13 13:08 字母哥博客 阅读 (312) 评论 (0) 编辑
摘要:一、公益图书馆例子 笔者不想直接用专业的术语来说明“微服务注册与发现”,所以我们来看生活中的一个案例:“公益图书馆”。随着人们生活水平的不断提高,追求精神食粮的朋友也越来越多。笔者曾经在一些城市看见过公益图书馆,其运行逻辑是:一些公益组织和个人提供一块场所,然后由组织内的人向图书馆内捐书。捐出的书越 阅读全文
posted @ 2019-12-12 07:47 字母哥博客 阅读 (339) 评论 (0) 编辑
摘要:Spring Data JPA最为优秀的特性就是可以通过自定义方法名称生成查询来轻松创建查询SQL。Spring Data JPA提供了一个Repository编程模型,最简单的方式就是通过扩展JpaRepository,我们获得了一堆通用的CRUD方法,例如save,findAll,delete等 阅读全文
posted @ 2019-12-10 14:05 字母哥博客 阅读 (162) 评论 (1) 编辑
摘要:一、OAuth2需求场景 在说明OAuth2需求及使用场景之前,需要先介绍一下OAuth2授权流程中的各种角色: 资源拥有者(User) 指应用的用户 认证服务器 (Authorization Server) 提供登录认证接口的服务器,比如:github等 资源服务器 (Resources Serv 阅读全文
posted @ 2019-12-09 13:32 字母哥博客 阅读 (391) 评论 (0) 编辑
摘要:本文主要说明一下开发者如何在QQ互联创建测试应用,从而分配给我们一套APP ID和APP KEY,在我们平时学习的时候使用。 一、QQ互联注册开发者 要想使用QQ登陆的功能,首先你必须是腾讯开发者。腾讯搞了一大堆的开放平台,有点乱。如果你还不是腾讯开发者,先去QQ互联网站 "https://conn 阅读全文
posted @ 2019-12-05 08:07 字母哥博客 阅读 (372) 评论 (1) 编辑
摘要:本文是Spring Security系列中的一篇。在上一篇文章中,我们通过实现UserDetailsService和UserDetails接口,实现了动态的从数据库加载用户、角色、权限相关信息,从而实现了登录及授权相关的功能。这一节就在此基础上新增,登录过程中经常使用的“记住我”功能,也就是我们经常 阅读全文
posted @ 2019-11-28 13:10 字母哥博客 阅读 (328) 评论 (0) 编辑
摘要:在上一次写的文章中,为大家说到了如何动态的从数据库加载用户、角色、权限信息,从而实现登录验证及授权。在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一定的时间之后才能再次进行登录操作。 一、基础知识回顾 要实现多次登录失败账户锁定的功能,我们需要先回 阅读全文
posted @ 2019-11-28 07:44 字母哥博客 阅读 (434) 评论 (0) 编辑
摘要:在本号之前的文章中,已经为大家介绍了很多关于Spring Security的使用方法,也介绍了RBAC的基于角色权限控制模型。但是很多朋友虽然已经理解了RBAC控制模型,但是仍有很多的问题阻碍他们进一步开发。比如: RBAC模型的表结构该如何创建? 具体到某个页面,某个按钮权限是如何控制的? 为了配 阅读全文
posted @ 2019-11-26 13:30 字母哥博客 阅读 (426) 评论 (0) 编辑
摘要:网上有很多《使用swagger2构建API文档》的文章,该文档是一个在线文档,需要使用HTTP访问。但是在我们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导出为html、markdown格式。又或者我们不希望应用系统与swagger接口文档使用同一个服务,而是导出HT 阅读全文
posted @ 2019-11-26 07:58 字母哥博客 阅读 (651) 评论 (0) 编辑
摘要:一、常用注解回顾 1.1 @RequestBody与@ResponseBody 如上代码所示: @RequestBody修饰请求参数,注解用于接收HTTP的body,默认是使用JSON的格式 @ResponseBody修饰返回值,注解用于在HTTP的body中携带响应数据,默认是使用JSON的格式。 阅读全文
posted @ 2019-11-19 08:10 字母哥博客 阅读 (278) 评论 (0) 编辑
摘要:一、formLogin的应用场景 在本专栏之前的文章中,已经给大家介绍过Spring Security的HttpBasic模式,该模式比较简单,只是进行了通过携带Http的Header进行简单的登录验证,而且没有定制的登录页面,所以使用场景比较窄。 对于一个完整的应用系统,与登录验证相关的页面都是高 阅读全文
posted @ 2019-11-16 10:30 字母哥博客 阅读 (757) 评论 (1) 编辑
摘要:一、什么是System.gc()? 是用Java,C#和许多其他流行的高级编程语言提供的API。当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用的对象)。名词解释:GC,Garbage Collection,垃圾回收,下文会经常使用。 二、谁可以调用System.gc()? 可以从应用程序堆 阅读全文
posted @ 2019-11-13 07:50 字母哥博客 阅读 (302) 评论 (1) 编辑
摘要:笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错。那究竟是为什么呢?我经过仔细的研究,发现他们都有一 阅读全文
posted @ 2019-11-13 07:42 字母哥博客 阅读 (118) 评论 (0) 编辑
摘要:一、Java Stream管道数据处理操作 在本号之前写过的文章中,曾经给大家介绍过 Java Stream管道流是用于简化集合类元素处理的java API。在使用的过程中分为三个阶段。在开始本文之前,我觉得仍然需要给一些新朋友介绍一下这三个阶段,如图: 第一阶段(图中蓝色):将集合、数组、或行文本 阅读全文
posted @ 2019-11-12 07:48 字母哥博客 阅读 (226) 评论 (0) 编辑
摘要:一、什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。 虽然跨域访问被禁止之后,可以在一定程度上提高了应用的安全性,但也为开发带来了 阅读全文
posted @ 2019-11-11 08:23 字母哥博客 阅读 (368) 评论 (0) 编辑
摘要:在本号之前写过的一些文章中,笔者使用了lambda表达式语法,一些读者反映说代码看不懂。本以为java 13都已经出了,java 8中最重要特性lambda表达式大家应该都掌握了,实际上还是存在大量的程序员没有使用java8,还有的使用了java8也不会使用lambda表达式。所以,写这篇文章还是有 阅读全文
posted @ 2019-11-08 07:55 字母哥博客 阅读 (247) 评论 (0) 编辑
摘要:一、导读 如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好。所以处理较大数据查询结果展现的时候,分页查询是必不可少的。分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据。那么,本文的主要内容就是给大家介绍一下,如何使用Sprin 阅读全文
posted @ 2019-11-07 08:00 字母哥博客 阅读 (518) 评论 (1) 编辑
摘要:本文大纲 flyway是什么 能帮助我们解决什么问题 springboot环境下使用flyway flyway的工作原理 一、flyway是什么 Flyway是一个开源的数据库版本管理工具,并且极力主张“约定大于配置”,简单、专注、强大。可以使用SQL完成数据同步,或者基于特定数据库的语法(例如PL 阅读全文
posted @ 2019-11-05 08:47 字母哥博客 阅读 (317) 评论 (0) 编辑
摘要:一、现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis。JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernate实现),是基于Spring的数据持久层框架,也就是说它只能用在Spring环境内。Mybatis也 阅读全文
posted @ 2019-11-04 08:40 字母哥博客 阅读 (520) 评论 (0) 编辑
摘要:一、 导读 本文大纲 读取HTTP Cookie 设置HTTP Cookie 读取所有Cookie[] 为Cookie设置过期时间 Https与Cookie HttpOnly Cookie 删除Cookie HTTP Cookie(也称为 Web cookie , 浏览器cookie )是服务器在用 阅读全文
posted @ 2019-11-03 09:39 字母哥博客 阅读 (536) 评论 (0) 编辑
摘要:一、什么是Java 8 Stream 使用Java 8 Streams,我们可以按键和按值对映射进行排序。下面是它的工作原理: 1. 将Map或List等集合类对象转换为Stream对象 2. 使用Streams的 方法对其进行排序 3. 最终将其返回为 (可以保留排序顺序) 方法以 作为参数,从而 阅读全文
posted @ 2019-11-02 12:44 字母哥博客 阅读 (367) 评论 (0) 编辑
摘要:如果经济实力允许的话,还是建议大家去购买收费版。支持原创作者,才能有更好的产品出现。 一、Jrebel插件介绍 JRebel一款帮助我们在开发过程中实现热加载的插件,目前来说,在IDEA中实现热加载最简单的方式就是使用Jrebel插件,我们修改代码之后不用重启应用,使代码能够立刻生效。本文将基于In 阅读全文
posted @ 2019-11-01 08:21 字母哥博客 阅读 (324) 评论 (0) 编辑
摘要:在开始之前,我先卖个关子提一个问题:假设我们有一个Movie类,这个类有三个成员变量分别是starred(是否收藏), title(电影名称), rating(评分)。你知道怎么对一个Movie对象组成的List集合,先按照是否收藏字段倒序排序,再按照评分的倒序进行排序么?如果您不知道4行代码以内的 阅读全文
posted @ 2019-10-31 09:57 字母哥博客 阅读 (357) 评论 (2) 编辑
摘要:前言 在实际的开发过程中,我们经常修改代码之后,手动的重启项目,查看修改效果。那么有没有一种方式能够快速的、自动的帮我们将修改代码自动更新,避免手动重启,从而提高开发效率呢?是有的,在我之前的文章里面给读者介绍了使用springboot devtools实现热加载的方法。本文就给大家介绍另外一种方式 阅读全文
posted @ 2019-10-30 08:13 字母哥博客 阅读 (75) 评论 (0) 编辑
摘要:一、Java Stream管道数据处理操作 在本号之前发布的文章《Java Stream函数式编程?用过都说好,案例图文详解送给你》中,笔者对Java Stream的介绍以及简单的使用方法给大家做了介绍。在开始本文之前,我们有必要介绍一下这张Java Stream 数据处理过程图,图中主要分三个部分 阅读全文
posted @ 2019-10-29 10:26 字母哥博客 阅读 (217) 评论 (0) 编辑