至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的某个资源先要访问网关,网关要对请求进行认证,然后要访问认证中心,认证通过后才能访问对应的资源.今天我们要讲的是在认证的时候我们需要较验用户的信息,这时就要访问用户服务(因该项目采用微服务,所有的模块都叫服务),这就涉及到服务之间的访问与发现了.所以这节重点在于使用consul注册服务与发现服务.多说…
我们的项目之前在直接连接的mysql,今天我们将通过docker挂载mysql 并与我们开发的webapi项目连接. 1. 安装docker 下载地址: https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe 下载后直接点下一步就可完成安装,或参见: https://www.cnblogs.com/stilldream/p/10627831.html 2. 安装完成后查看版本:docker –ve…
今天来给我们的项目增加API网关,使用Ocelot. 它是系统暴露在外部的一个访问入口,这个有点像代理访问的家伙,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导.等等功能.同时我们还要在网关中集成了Identity Server(Identity Server在项目中的使用见上一篇文章),当网关需要请求认证信息的时候会与Identity Server服务器进行交互来完成.多说也无益,直接上项目吧. 新建一个空的.netcore项目,命名为Zhengwei.Gateway新建好后引入O…
一.什么是HTPP Patch HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法. 而patch其实就是对新增五种请求方式中的put的补充.用来对已知资源进行局部更新. 补充一下,PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的. 幂等是一个数学和计算机学概念,在计算机范畴内表示一个操作执行任意次对系统的影响…
在 .netcore中可以自定义自己的异常类型,步骤如下: 1.自定义自己的异常类型UserOperationException 并继承自Exception public class UserOperationException:Exception { public UserOperationException() { } public UserOperationException(string message) : base(message) { } public UserOperationE…
大家都知道我们的项目中已有web api,现在可以正式访问,不论任何人只要通过输入对应的api网址就可以访问到我们的api 资源,这样是很不安全的,我们需求对当前用户进行身份验证,因此我们在项目中使用IdentityServer4来对受保护资源并实现身份验证和/或授权,直接开始上代码,这些代码直接可以在你的项目中使用,并跑起来. 1.  新建一个空的.netcore web项目,并引入IdentityService4的NuGet包. 2.  在项目中增加一个config.cs文件 public…
1.  为什么要用polly 前面的项目中,一个服务调用另一个(Zhengwei.Identity调用Zhengwei.Use.Api)服务时是直接调用的,在这个调用的过程中可能会发生各种瞬态故障,这里的说的瞬态故障包含了程序发生的异常和出现不符合开发者预期的结果.所谓瞬态故障,就是说故障不是必然会发生的,而是偶然可能会发生的,比如网络偶尔会突然出现不稳定或无法访问这种故障.Polly对于这些故障会有自己的处理策略 2.  Polly 的七种策略 重试:出现故障自动重试. 熔断:当系统遇到严重问…
本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) 1.额度15000以上或者自定义2.可以提现,手续费5%3.账户信息,信用卡和购物车共用4.支持账户间转账5.支持购物结账功能6.有还款功能7.记录每月日常消费流水8.每个重要步骤都要记录到日志文件里(用logging模块)9.有管理员功能,添加账户,冻结账户,调整用户额度(可选)10.每月19号…
一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发项目实战篇>,阿笨将直接带领大家进入Xamarin for android的实战项目环节,真真体验一下xamarin开发的魅力吧. 由于阿笨学习Xamarin也是“半路出家”,“赶鸭子上架”的状态,视频教学中关于Xamarin for Android的知识点难免有不足和不完善的地方,希望大家能够多多交流…
Android项目实战(二十七):数据交互(信息编辑)填写总结   前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: 先写实现过程,想要学习的同学可以看看,不需要的同学可以直接拉到最下面复制代码使用. -----------------------------------------------------------------------------------------------------------…
本篇是为项目实战做准备,学习Linux是必备的,不然都不好意思叫全栈对吧?下面是一位资深大神写的文章,够详细,我也不用浪费时间再写了 原文链接:Ubuntu学习——第一篇 内容: 一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大家的存在”,是非洲传统的一种价值观. Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成…
从今天开始我们用Net Core进行项目实战,采用微服务构架,因此你会看到我各模块开始都是用的web api.项目中的代码直接可以复制.费话不多说,现在就来跟我一起开始吧! 1.打开VS2017—>文件--->新建--->项目,会看到如下的界面…
目录 [Rsync项目实战]备份全网服务器数据 [企业案例] 1.1 环境部署 1.2 开始部署backup服务器:Rsync服务端过程: 1.3 开始部署nfs01服务器:Rsync客户端过程: [Rsync项目实战]备份全网服务器数据 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处,作者信息和本声明.否则将追究法律责任.http://www.c…
要求: 1.完成常识中的ATM存取款机功能 2.把ATM机故障考虑进去 3.不能直接输入账户名和卡号等等信息,模拟出插银行卡让ATM机自动读取卡信息 4.密码验证超过三次错误即锁定账户 5.操作类型有:存款,取款,查询,转账,打印凭条,退卡,一共六个选项,跟用户输入做出不同的反馈 6.当用户正常进入,列出操作类型,每次操作结束后都要重新选择操作类型,只有退卡操作才会结束 7.操作结束后,数据要同步更新 8.要有日志文件,每个涉及到钱走向的操作都要有日志记录 分析: 同样的没什么可说的,根据生活中…
如果上一篇我转发的关于ubuntu的博文,你看完觉得还没准备好,那么,本篇从最基础的开始,安装虚拟机到正常使用ubuntu 虚拟机 1.什么是虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统. 通俗的说,我们平常看得见摸得着用得了的电脑就是物理机,与物理机相对的就是虚拟机,虚拟机本质上还是一个软件,它的功能是将物理机里的硬件资源虚拟化给虚拟出来的计算机使用(如果还是看不太懂,没事,后期使用惯了你就自然而然的会了) 2…
思路分析: (1)选定起始人(即选择关注数和粉丝数较多的人--大V) (2)获取该大V的个人信息 (3)获取关注列表用户信息 (4)获取粉丝列表用户信息 (5)重复(2)(3)(4)步实现全知乎用户爬取 实战演练: (1).创建项目:scrapy startproject zhijutest (2).创建爬虫:cd zhihutest -----scrapy genspider  zhihu www.zhihu.com (3).选取起始人(这里我选择了以下用户) 我们可以看到他关注的人和关注他的…
由于本篇博文的项目都很简单,所以本次开个特例,本次解析两个项目,但是都很简单的 项目一:用socket实现文件传输 本项目很简单,作为小项目的预热的,前面刚学完socket,这里马上又利用socket进行项目开发,难不倒各位 项目要求: 1.用socket完成文件上传功能 2.文件位置可以设置 3.传输协议可以为get,和post 4.路径存放位置可以设置 5.服务端实现多用户连接,客户端随意 要求就这么简单,好久没有这么简单的操作了吧? 不多说,直接来. 程序结构: settings.py:…
要求: 1.在上一篇的地址管理系统的基础上做升级改动 2.添加增删改的功能 3.尽量的贴近生活常识中的地址管理 分析: 需求不用多说了,干就完了 相关文件源码地址:github 这次由于要有增删改的操作,所以需要一个数据库文件存储数据,china_map.txt {'吉林': {'长春': {'朝阳区': {}, '南关区': {}, '宽城区': {}, '二道区': {}, '绿园区': {}, '双阳区': {}, '德惠市': {}, '九台市': {}, '榆树市': {}, '农安县…
要求: 1.系统可以创建用户和登录用户,根据用户的输入不同,做出不同的反应(创建还是登录) 2.创建用户不能创建已存在的用户名 3.登录用户的操作最多只能有三次,超过三次冻结账户,每使用一次提示用户还有多少次机会 4.认证用户成功后显示欢迎用语 分析: 1.根据用户输入不同,做出不同反应,那么则可以使用一个变量来接受用户输入的值,然后用if判断,如果是什么就是什么 2.创建用户输入的用户名要和已存在的用户名(包括冻结用户名和正常用户名)做对比,那么就得有个容器来存储已存在的用户数据,并且每次使用…
转自: https://blog.csdn.net/eson_15/article/details/51366370 添加商品部分原理和添加商品类别是一样的,不过要比商品类别复杂,因为商品的属性有很多,对应的数据库中的字段也就多了,添加商品还有个选项是上传图片,这一小块内容会在下一篇博客中单独说明,因为这涉及到一个知识点,就是Struts2实现文件上传功能.其他废话不多说了,现在开始完善添加商品部分的代码: 1. 添加商品1.1 添加商品的UI实现        首先完成query.jsp中添加…
angularjs,在我看来是个中等重量级的框架.即不像backbone那么简单,也不像dojo和Yui那么包罗万象.很多时候,妄图包罗万象,往往会出现很多子模块的质量高不成低不就,并且修改起来较为困难.过分精简,则框架内容单薄需要写的内容太多.angularjs这种相对中庸的风格,则非常符合我的需求. 目前,AngularJS三个我认为最为精妙的组件就是数据绑定(Scope),指令(Directive)和依赖注入(Dependency Injection),表现得非常好.相对而言,它的UI组件…
引言:angularjs是一个中等重量级的前端开发框架 HTML是一门很好的为静态文本设计的语言,但要构建动态的web应用它就显的乏力了.通常,我们使用以下技术来解决静态网页技术在构建动态应用上的不足: 1.类库:类库是一类函数的集合,它能帮助你写web应用.这里起主导作用是你的代码,由你来决定何时使用类库.典型的类库,例如prototype.jquery等. 2.框架:框架式一种特殊的.已经实现的web应用,你只需要填充具体的业务逻辑.这里框架是起主导作用的,由它根据具体的逻辑来调用你的代码.…
都在线购物过吧?那么你应该体验过,当没有登录账户时,点开购物车,个人中心,收藏物品等的操作时,都会直接跳转到登录账户的界面,然后如果登录一次后就不用再登录,直到用户登出. 是的,本次项目就是做一个登录验证系统 需求:1.模拟某购物网站,进入菜单选项:一共有以下页面,根据用户输入的序号,做出不同的反馈:    1).主页    2).数码产品    3).服饰    4).账户信息    5).购物车2.访问的页面都需要登录验证,如果已登录则跳过,如果为登录都得登录,登录验证一次就行,随便在那个页…
用正则表达式开发一个计算器,计算用户给定的一串带有加减乘除的公式. 要求:不能使用eval转换字符串 分析: 要求简单,就是计算混合运算,但是不能使用eval直接转换,主要就是把整个式子中的小括号优先匹配到进行计算再把计算结果替换到式子中,然后再根据小括号计算,直到没有小括号再按照加减乘除优先级计算,最后计算出结果.每次计算前把加减乘除符号格式化一下,比如有+和-同时存在的时候 代码发布区:github #!usr/bin/env python #-*- coding:utf-8 -*- # a…
相信各位都在在网上买过东西吧?那么今天我的主题就是写个在线购物系统,是不可能的,哈哈(后期确实有这个项目),那么购物都填写过快递地址吧?然后网上查个地址都有地址管理吧? 要求: 1.打印出省.市.县等多级目录 2.每一级可以返回到上一级,第一级不能再往上返回 3.可以随时退出系统 分析: 1.简单的地址管理,那么不必把全国的地区都写清楚,做个简单的范例就行,根据你常识中的地址来写就行 2.既然是层层跌进的,那么就有包含关系,这种包含关系怎么搞呢?换句话用什么数据类型存储,我个人喜欢用字典,你们可…
转自:https://blog.csdn.net/eson_15/article/details/51347734 上一节我们做完了查询和删除商品的功能,这一节我们做一下添加和更新商品的功能. 1. 添加商品类别1.1 添加类别的UI设计        我们先说一下思路:首先当用户点击“添加商品”时,我们应该弹出一个“添加商品”的UI窗口(注意这里不是跳转到新的jsp,EasyUI只有一个页面),弹出这个“添加商品”的窗口后,应该锁住它父类的所有窗口(即点击其他地方无效,只能操作添加商品的窗口)…
版本控制器:Git # 达到多人协同开发的目的 安装 """1.下载对应版本:https://git-scm.com/download2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项 -- 安装成功后桌面右键可以看到git菜单""" 工作流程图 搭建本地git仓库 将已有的文件夹作为git仓库 """>: cd 目标文件夹内部…
一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$refs.xxx获取元素 创建组件,装载DOM,用户点击按钮 ref 在DOM上获取的是原生DOM对象 ref在组件上获取的是组件对象 $el是拿其DOM 这个对象就相当于我们平时玩的this,也可以直接调用函数 总结: $属性:$refs获取组件内的元素 $parent:获取当前组件对象的父组件 $child…
要求: 1.基本符合日常购物车的要求(根据你的想法开放性提升功能) 2.展示商品信息,并且可随时上新商品 3.用户购买每一样商品时都对所剩的钱做一次对比,如果够则提示“已购买”,如果不够提示“余额不足” 4.最后结账的时候,打印出一共买了那些商品,以及用了多少钱,剩余多少钱 5.用户购买商品时,尽量多给一些提示用语,方便提示用户 分析: 1.这个没什么可说的,大家都购过物,根据平时的经验来实现功能即可 2.商品信息需要手动添加,用的数据类型是什么,根据你的习惯用字典,还是列表,还是元组 我希望你…
前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: 先写实现过程,想要学习的同学可以看看,不需要的同学可以直接拉到最下面复制代码使用. ------------------------------------------------------------------------------------------------------------------------------------ 一.文字编辑对话…