摘要:
前言 Go协程一般使用channel(通道)通信从而协调/同步他们的工作。合理利用Go协程和channel能帮助我们大大提高程序的性能。本文将介绍一些使用channel的场景及技巧 场景一,使用channel返回运算结果 计算斐波那契数列,在学习递归时候这是个经典问题。现在我们不用递归实现,而是用c 阅读全文
摘要:
goroutine简介 golang语言作者Rob Pike说,“Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法。一个运行的程序由一个或更多个goroutine组成。它与线程、协程、进程等不同。它是一个goroutine“。 goroutine通过通道来通 阅读全文
摘要:
线程实现模型 线程实现模型主要分为:用户级线程模型,内核级线程模型和两级线程模型。他们的区别在于线程与内核线程之间的对应关系。 以下我们将分析这三种线程实现模型的特点: 用户级线程模型 (1)多对一关系 用户级线程模型为多对一关系。即,一个进程中的所有线程对应一个内核线程; (2)处理速度快、移植性 阅读全文
摘要:
前言 之前文章简单介绍了如何运行gin+vue的前后端分离开源项目,该项目是学习了Gin实践教程后结合vue-element-admin写的,该教程讲得很详细,适合入门Gin。本篇文章将介绍gin+vue的前后端分离开源项目中如何使用gin-jwt对API进行权限验证。 安装gin-jwt expo 阅读全文
摘要:
该项目是gin+vue的前后端分离项目,使用gorm访问MySQL,其中vue前端是使用vue-element-admin框架简单实现的; go后台使用jwt,对API接口进行权限控制。此外,Web页面在token过期后的半个小时内,用户再次操作会自动刷新token; 项目很小,适合gin新手学习! 阅读全文
摘要:
目前很多应用都存在网页端和客户端形式,例如常用的:钉钉、微信等。按传统的开发形式,需要为客户端开发一套界面。基于当前Web应用可以利用三大前端框架和UI框架快速开发出各种酷炫的界面,于是出现了客户端嵌浏览器的方式,它不仅可以重用Web应用,而且以客户端内嵌浏览器的形式,不用担心用户用IE浏览器打开你 阅读全文
摘要:
上篇文章介绍了如何使用mybatis-generator生成实体类、Mapper接口代码,其中生成的Mapper接口代码是不带ByExample方法的。本篇文章将介绍如何使用mybatis-generator生成的ByExample方法动态扩展where字句。 一、Mapper接口生成ByExamp 阅读全文
摘要:
MyBatis是Java目前主流的ORM框架,在Spring Boot中使用MyBatis可以参考这篇文章:http://www.ityouknow.com/springboot/2016/11/06/spring-boot-mybatis.html 这篇文章来将介绍MyBatis Generato 阅读全文
摘要:
本篇文章将教你如何使用VS Code编写Spring Boot程序。你不需要用Eclipse,也不需要用IDEA。已经习惯了VS,其他的IDE…… 但不得不说VS Code很厉害,一用就喜欢。微软给VS Code提供了编写Java的插件,你可以在VS Code上愉快地写Java。 一、环境搭建 (1 阅读全文
摘要:
前言 之前文章讲到如何使用Node.js+Express构建JavaScript客户端,实现前后端分离。本节将介绍如何使用Vue实现前后端分离,文中介绍Vue的知识比较基础,适合新手学习。 一、搭建Vue项目 前提条件:安装nodejs、webpack和vue-cli。这个网上很多教程,这里不多说。 阅读全文
摘要:
前言 最近在忙一个高考项目,看着系统顺利完成了这次高考,终于可以松口气了。看到那些即将参加高考的学生,也想起当年高三的自己。 下面分享下RabbitMQ实战经验,希望对大家有所帮助: 一、生产消息 关于RabbitMQ的基础使用,这里不再介绍了,项目中使用的是Exchange中的topic模式。 先 阅读全文
摘要:
RabbitMQ流程简介(带Exchange) RabbitMQ使用一些机制来保证可靠性,如持久化、消费确认及发布确认等。 先看以下这个图: P为生产者,X为中转站(Exchange),红色部分为消息队列,C1、C2为消费者。 整个流程分成三部分:第一,生产者生产消息,发送到中转站;第二,中转站按定 阅读全文
摘要:
前言 上篇博文说到使用Visual Studio Tools for Docker帮助我们生成Dockerfile,现在我们讨论下生成的Dockerfile的优劣。 一、以往Dockerfile构建模式 (1)发布API项目 新建Web API项目,项目名称为API 在项目所在目录输入指令:dotn 阅读全文
摘要:
一、Docker简介 Docker是基于Linux容器技术(LXC),使用Go语言实现的开源项目,诞生于2013年,遵循Apache2.0协议。Docker自开源后,受到广泛的关注和讨论。 Docker在开发和运维中的优势: (1)更快的交付和部署。 使用Docker,开发人员可以使用镜像来快速构建 阅读全文
摘要:
上两节介绍完Hybrid模式在MVC下的使用,包括验证从数据获取的User和Claim对MVC的身份授权。本节将介绍Implicit模式在JavaScript应用程序中的使用,使用Node.js+Express构建JavaScript客户端,实现前后端分离。本节授权服务和资源服务器基于第四和第五节。 阅读全文
摘要:
本节将在第四节基础上介绍如何实现IdentityServer4从数据库获取User进行验证,并对Claim进行权限设置。 一、新建Web API资源服务,命名为ResourceAPI (1)新建API项目,用来进行user的身份验证服务。 (2)配置端口为5001 安装Microsoft.Entit 阅读全文
摘要:
上节以对话形式,大概说了几种客户端授权模式的原理,这节重点介绍Hybrid模式在MVC下的使用。且为实现IdentityServer4从数据库获取User进行验证,并对Claim进行权限设置打下基础(第五节介绍)。 本节内容比较多,且涉及一、二节的内容,如有不懂,可先熟悉一、二节知识。 一、新建授权 阅读全文
摘要:
在学习其他应用场景前,需要了解几个客户端的授权模式。首先了解下本节使用的几个名词 Resource Owner:资源拥有者,文中称“user”; Client为第三方客户端; Authorization server为授权服务器; redirection URI:简单理解为取数据的地址; User 阅读全文
摘要:
本节介绍Client的ClientCredentials客户端模式,先看下画的草图: 一、在Server上添加动态新增Client的API 接口。 为了方便测试,在Server服务端中先添加swagger,添加流程可参考:https://www.cnblogs.com/suxinlcq/p/6757 阅读全文
摘要:
一、背景 IdentityServer4的介绍将不再叙述,百度下可以找到,且官网的快速入门例子也有翻译的版本。这里主要从Client应用场景方面介绍对IdentityServer4的应用。 首先简要介绍ID Token和Access Token: Access Token是授权第三方客户端访问受保护 阅读全文