- 博客(30)
- 收藏
- 关注
原创 Spring boot 运用策略模式实现,避免多次使用if
该篇主要讲解了用Spring boot 运用策略模式实现需求,避免了多次if判断,并将策略逻辑分离
2022-08-22 20:35:54 904 1
原创 SpringEvent 事件发布/监听机制相关源码解析
该篇文章是我学习SpringEvent源码实现的过程,看源码的过程中,会涉及到程序启动时系统监听类的注入、自定义监听类的注入、事件发布后如何通知监听类等等,如果一一记录,就显得又长又混乱了,所以本篇只涉及事件发布后如何通知监听类的源码,其他的只会稍微提一提。关于SpringEvent的介绍和应用可以看我之前写的文章SpringEvent介绍与应用。...
2022-08-08 21:46:50 458
原创 SpringEvent的介绍以及实例
该文章是我学习使用SpirngEvent的过程,现在只写了SpringEvent的应用,后续会写一篇从源码关注SpringEvent的实现过程。SpringEvent在我认为是一个解决业务解耦的办法,运用了观察者模式,用于当一个业务的更改后,需要改变其他业务的状态。例如一个商品的下单,需要修改商品的库存,以及商家的消息发送等等。...
2022-08-07 15:47:19 3021
原创 Leetcode题目记录——两数相加
题目https://leetcode-cn.com/problems/add-two-numbers/第一次解题思路(失败)先将两个链表还原成数字,然后相加得出总数,再将总数还原成链表例如存在这两个链表将l1 链表还原成数字,也就是342,将l2链表还原成数字,也就是465,342+465=807,再把807化为链表实现方式 public ListNode version1(ListNode l1, ListNode l2){ ListNode end=l1;
2022-03-12 16:47:02 874 1
原创 设计模式个人理解——策略模式
前言本篇是本人在看书学习和项目实际使用后的产生的,下面大多数都是自己的理解,如果有误,望在评论区指出策略模式的应用场景策略模式是否要使用,取决于业务场景是否符合,有没有必要。是否符合如果业务是处于不同的场景时,采取不同的处理方式的话,就满足符合。 这里举几个业务栗子如果今天我有1000块,那我就和朋友去游乐园玩、然后再去吃顿好吃的。如果有2000块的话,那我就先买一件好看的衣服,再和朋友去游乐园玩和吃好吃的商品收银业务,根据店中不同的活动分为正常收费、折扣收费、返利收费,每种收费的方式
2022-01-12 10:00:11 576 1
原创 .NETCore基于RabbitMQ实现延时队列的两种方式
前言此文章用来记录自己学习延时队列过程的文章,并用JAVA和.NET这两种方式实现了简单的Demo。Demo已上传到github,地址最下方,如果文章有什么错误,欢迎评论区指出延时队列的应用场景应用下单后,30分钟没有支付的话,则自动取消订单活动开始前30分钟,提醒参赛者参加活动。活动结束后,30分钟后提醒未进行评价的参赛人员进行评价…上述的场景都可以使用延时队列进行对应的处理。上面的场景虽说可以通过定时器也可以处理,但有点浪费资源, 而上述的场景时间是不定的,例如有两个活动需要提醒参
2021-10-18 21:05:34 1360
原创 git stash命令应用场景的理解(附上案例)
前言此文章是进行git分支开发的过程中所体验的命令,感觉挺好用的,记录下来。如有错误,可以在评论区指出.下面的内容比较适合"知道git stash相关命令,但不知道可以用来做什么"的小伙伴查看git stash 命令命令解释补充git stash save “message”保存当前分支所做但提交的操作,回到上个版本的状态message:是给用来解释保存的东西时用来做什么的git stash list用来展示所有保存(stash)的列表方便查看自己保存了有多
2021-05-15 21:06:17 360
原创 通过ajax上传的multipart/form-data的boundary不同导致后端接收不到
问题自己手动通过ajax上传multipart/form-data类型的请求(既有文件,也有表单字段)的时候,服务器接收不到对应的文件和字段。当时的请求ajax是这样的$.ajax({ type: 'post', url: uplaodUrl, data: sendData, processData: false, contentType: "multipart/form-data; boundary=----We
2020-12-28 18:29:17 4234 2
原创 Sql Union和Union ALL的区别(带例子)
前言一段时间没有用Union和Union,再用的时候忘了怎么用了。。。所以做一篇文章来记录自己学Union和Union的精力。提前准备在Sql Server 创建两张表,下面是创建表sql语句。create table Student1( Id varchar(50) not null, Name varchar(50) not null, Age int not nu...
2020-05-09 00:37:33 1984
原创 ASP.NET Core 返回Json数据的时候 DateTime类型中间含有T
前言之前也曾几次遇到这个问题,不过那时候只是让前端用replace替换掉,治标不治本,现在想直接治本。问题ASP.NET Core 返回Json数据的时候,如果数据中含有DateTime类型的话,那么json化的时候,会含有一个T //类似这种含有T的DateTime "add_time": "2019-09-22T14:21:37"解决方法修改部分ASP.NET C...
2019-10-10 14:33:18 1050
原创 关于@HTML.Raw的作用
前言之前对HTML.Raw方法的印象不是很深,因为不清楚能用在哪里,最近在处理"展示富文本内容"的时候用上了,为了让自己的印象深一点,便记录下来。用个栗子来展示下作用。例如我们的富文本内容(含HTML标签的字符串)在Comment类的Content属性里,我们现在要把这个属性显示在MVC的页面上,我们会这样操作。<div class="comment_list_txt"> ...
2019-09-20 20:39:33 1938
原创 IdentityServer4 解决oidc自定义Claim无法添加到Cookie的问题
前言此文章是用来记录我遇到问题时,其解决方法、个人想法,如果有误,希望可以指出。问题本人在学习IdentityServer4文档中的oidc(使用OpenID Connect添加身份验证)的时候,账号密码验证完了之后,想要向Cookie添加自定义的Claim的时候,却发现添加不了(客户端没有看到我自定义的Claim)。//这里只展示自定义Claim添加Cookie相关得代码//自定义...
2019-09-04 08:51:40 2634
原创 Serilog初识(二)————结构化数据
前言本篇是本人根据对官方文档Structured data章节的内容,所做的理解总结记录,如果有什么不对的地方,望评论指出。地址:https://github.com/serilog/serilog/wiki/Structured-DataSerilog的默认序列化Serilog是一个序列化器,如果我们不主动告诉Serilog数据该如何序列化的时候,Serilog对数据也有默认的序列...
2019-08-11 15:32:24 2068
原创 Serilog初识(一)————分别Console、Web程序简单使用Serilog
Serilog简介Serilog是.NET应用程序的诊断日志库。它易于设置,具有干净的API,并可在所有最新的.NET平台上运行。虽然它在最简单的应用程序中也很有用,但Serilog对结构化日志记录的支持在处理复杂,分布式和异步应用程序和系统时仍然很有用。——GithubSerilog的介绍通过Console使用Serilog使用Serilog之前先得在NuGet下载几个包,在NuGet控...
2019-08-09 16:54:51 4294 2
原创 使用ASP.NET Core 配置文件
前言在ASP.NET ,我们使用XML格式的.Config文件来作为配置文件,而在ASP.NET Core,我们有了更多的选择,可以用回XML,也可以用Json、Ini文件作为配置文件Json配置文件的使用在创建ASP.NET Core的项目的时候,框架会自动添加appsettings.json文件和添加IConfiguration的注入。public Startup(IConfigu...
2019-07-17 16:45:48 274
原创 C#使用Newtonsoft.Json的JsonConverter解决反序列化类中的接口属性出现的问题
前言我们在使用Newtonsoft.Json进行反序列化类中的接口属性的时候,Newtonsoft.Json会因找不到具体实现类,无法进行反序列化。问题Student类public class Student<T>{ public string Name { get; set; } //这个是用来测试泛型是否能序列化和反序列化 public T ...
2019-06-19 17:51:46 15891 5
原创 给ASP.NET Core搭建日志框架Exceptionless
Exceptionless简介Exceptionless为.NET Core,Web api,WebForms,WPF,Console,MVC,Node,JavaScipt,提供实时异常报告,并且是开源的,而且报告详细,避免了我们花费时间自己使用Nlog,log4Net等日志来构建异常报告。我们想要使用Exceptionless有两种方式,一个是使用官方提供的网站平台来进行查看异常报告,第二个...
2019-06-16 22:30:12 704
原创 使用IdentityServer实现SSO出现Development environment should not be enabled in deployed applications错误
问题在用IdentityServer实现SSO的过程中,从客户端跳转到SSO认证中心的时候,认证中心报了如下错误。Error.An error occurred while processing your request.Development ModeSwapping to Development environment will display more detailed info...
2019-06-13 10:10:59 3976
原创 使用IdentityServer4简单的实现一个SSO单点登录
一.简介本文使用IdentityServer4来实现SSO单点登录(注销没有实现),我们其中使用Implicit模式和OIDC服务来实现。
2019-06-12 16:32:53 11463 11
原创 ASP.NET Core+Cookie实现SSO单点登录
简介我只实现了单点登录,还没有实现单点注销,不过我会在最下面记录单点注销的思路,而单点登录服务端我使用的是Cookie作为全局会话,用Redis代替Session作为存储,我在使用Session作为存储的时候,2个客户端发送Cookie中的Sessionid是一样的,但是服务端却判断Sessionid不一致,最终放弃,改为用Redis,可能是我太菜了= =,如果有人知道这种解决方法,望告知S...
2019-05-31 10:40:54 6148 2
原创 通过源码简单理解ASP.NET MVC中的消息管道(1)
概述此系列是根据自己在看源码和大佬的博客总结得出,大概有3篇,因为自己看了源码和看大佬博客之后,很容易忘记,因此想先记录下来,如果哪里有错误的话,欢迎留言,如果这系列能帮上你,我也很开心。下面的内容讲解的ASP.NET MVC是如何对HttpApplication进行初始化一.简单的过程图因为没有长截图,所以分段截图了= = ,如果想看全图,可以点击下面链接https://w...
2019-05-19 10:07:20 350
原创 linux由于重启网络或重启导致resolv.conf里面设置的配置消失,ping的时候出现unknown host
问题在ping百度的时候出现无法ping出错的情况个人的理解是它不知道www.baidu.com对于的ip,所以无法ping,而查找域名对应的ip,是DNS的工作,所以我跑去查看了一下DNS原因我有两个地方没有配DNS,一个是/etc/sysconfig/network-scripts/ifcfg-eth0文件里面DNS第二个地方比较特别,就是resolv.conf文件,它是D...
2019-05-07 20:12:02 1262
原创 git中关于git diff的理解
git diff命令是用来描述工作区,暂存区,版本区之间的差别。不过git diff 和git diff head差别只针对现有文件,不针对新添文件(个人推测,理由在最下方)git diff --cached命令用来描述暂存区和版本区的差别当暂存区和版本库都有一样的文件时,如果我们在暂存区进行添加,修改文件,那么git会给出具体的差别。修改操作原来的789.txt文件内容:现在的7...
2019-04-25 15:00:56 2159
原创 ASP.NET MVC理解HttpModule的作用并自定义HttpModule
预备知识首先先来一张ASP.NET 请求管道的图,这张图里包含了HttpModule在请求管道的作用,有助于下面对HttpModule的理解如果有什么错误,欢迎留言,或者说对这张图不能理解的话可以网上查 ASP.NET请求管道 ,有很多优秀的文章HttpModule的作用结合根据上面的流程红框,我们可以看出HttpModule的作用是“在HttpContext到达我们真正处理请求,...
2019-04-21 17:16:29 1678
原创 ASP.NET Core2.0使用SignalR和Redis进行实时信息推送
最终效果准备工作和预备知识首先先用NuGet包下载SignalR包:Microsoft.AspNetCore.SignalR安装过后,需要得就是SignalR的JS文件,这里可以采用npm命令进行安装npm install @aspnet/signalr这样,在路径下面就会出现两个文件,一个是node_modules文件夹和package-lock.json文件我们点...
2019-04-12 11:53:40 3878 7
原创 ASP.NET Web api接收multipart/form-data文件,解析MultipartFormDataStreamProvider文件保存过程
在ASP.NET Web api 中,接收multipart/form-data文件,我们可以使用MultipartFormDataStreamProvider来保存图片 [HttpPost,Route("api/Job/newJob")] public async Task<IHttpActionResult> PostNewJob() { ...
2019-04-11 09:12:25 10890 4
原创 RSA算法原理(附带例子)
RSA 简介RSA是一种非对称性加密算法,现在算是最具有影响力的算法,简单来说RSA运用了"一个大整数进行因式分解具备一定的难度"这个数学知识来进行加密,对一个极大整数做因式分解越难,那么想要破解加密过后的密码就越难。在讲RSA算法之前,先要学习几个知识点,下面会一一讲解。整数因子如果一个整数N能被负N到N之间(包括负N和N)中的整数整除,那么这个数就是这个整数的整数因子举个栗子:求...
2019-03-30 15:16:01 2249
原创 解决ASP.NET Web api 使用AllowAnonymous特性不起作用的问题
问题:在控制器或方法添加[AllowAnonymous]特性的时候,无法跳过继承AuthorizeAttribute的子类的验证。原因:
2019-03-12 14:26:46 6312
原创 hexo+github个人博客
hexo+github个人博客node.js安装git安装hexo安装生成默认网站GitHub操作1. 首先得有GitHub的账号,这里就不进行演示了。2. 使用ssh将git远程连接GitHub(已经连接的小伙伴就可以忽略此部分)在GitHub上创建项目node.js安装官网下载地址:https://nodejs.org/en/当要检查是否安装成功的时候输入node -v可查看node版...
2019-02-21 15:58:03 216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人