自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(241)
  • 资源 (3)
  • 收藏
  • 关注

原创 WebApi实现原理

WebApi 就是网络接口,运行流程如下。

2025-07-11 19:42:00 400

原创 模版方法模式

模版方法模式就是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。

2025-07-11 19:39:00 235

原创 适配器模式

适配器使用前提系统中功能已经实现时候。系统中功能不兼容时候。缺点导致对象违背单一职责。导致代码理解难度增大。建议:尽量保证规范。尽量保证统一。代码规范不统一,那么就只能只用适配器暂时解决。

2025-07-11 19:38:00 392

原创 责任链模式与中间件原理

虽然责任链调用已经完成了封装,遵循了开闭原则,但是添加中间件 AddMiddleware 方法依然会随着中间件增加而增多,客户端代码不稳定。上面代码中把中间件都添加到集合 middlewares 中,再通过 GetMiddleware 方法动态创建出中间件链。以后每次想添加中间件,只需要添加中间件类和扩展类,再往 Startup 类中加入就可以了,客户端调用代码完全不用动。但是如果要想加入中间件,责任链这样的调用就会很麻烦,于是去改造代码,加入建造者模式。这样客户端代码就稳定了。创建请求类和中间件类。

2025-07-10 21:16:00 387

原创 容器化-Docker volume数据卷

这样就可以把 /root/volumes/nginx.conf 文件挂载到容器中的 /usr/local/nginx/conf/nginx.conf。目标:Linux主机上面的nginx.conf配置文件挂载到 nginx 容器中。含义:Linux文件可以挂载到容器中,Linux文件可以复制到容器中。创建 volumes 文件夹,并创建 nginx.conf 文件。数据卷就是将容器的数据存储到主机上,方便进行持久化存储。主机目录挂载到容器中或把容器目录挂载到主机中。主机文件挂载到容器中,

2025-07-03 21:04:00 258

原创 容器化-Docker容器网络

客户端 ---> Linux--->Docker--->容器---->项目。客户端--->Linux--->Docker---> 容器---->项目。客户端--->Linux--->Docker--->容器---->项目。客户端--->Linux--->Docker--->容器---->项目。客户端--->Linux--->Docker--->容器---->项目。网络有三种模式:桥接模式、host模式、none模式。mywebapi 名称配置到 nginx 中就可以了。容器---->项目(内部模式)

2025-07-03 17:38:00 297

原创 容器化-Docker容器编排 docker-compose

什么是 docker-compose批量创建多个镜像和多个容器目的:是方便镜像和容器的管理下载 docker-compose但是 github 速度太慢了,可以用 vpn 或其他下载源。安装 docker-compose1、windows 上下载 docker-compose-linux-x86_642、修改docker-compose-linux-x86_64 后缀名 docker-compose3、上传到 Linux 这个 /usr/local/bin/docker-compose。

2025-07-03 17:34:00 611

原创 容器化-Docker自定义镜像

自定义镜像的核心是Dockerfile。Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。镜像构建需要一个基础镜像,和其他命令一起来完成。Dockerfile。

2025-07-03 17:28:00 249

原创 容器化-Docker基础

客户端----->Linux------>Docker---->容器----->.Net项目。Net7项目 + Dockerfile 构成的。.Net7项目在 docker 中标准。区分不同语言开发的项目。容器就是项目运行的平台。Linux操作系统运行项目。如何在Docker中部署.Net7项目。Dockerfile :统一执行命令。部署项目 部署微服务(分布式项目)4、镜像运行容器(发布项目)Docker 是容器技术。Dockerfile配置。Dockerfile使用。docker项目访问。

2025-07-03 17:28:00 193

原创 ABP vNext-核心根基-领域驱动DDD

Domain-Driven Design 领域驱动设计领域驱动设计是客户需求驱动设计什么是客户需求领域产生领域产生的实质:人和物关系商品领域中包含哪些商品两类数据 1、商品构造。2、商品操作。

2025-06-24 11:43:00 275

原创 ABP vNext-核心根基-模块化

ABP vNext是一个基于Asp.Net Core Web应用程序框架。主要目的是用来快速开发Web应用。可以用于开发任何Web应用程序。为什么AbpvNext可以快速开发Web应用?两个原因:1、ABP vNext提供完整Web应用程序开发模板。2、ABP vNext提供Web应用程序开发所需要的一些基础设施功能。应用程序:运行在操作系统之上的程序都叫应用程序。例如:QQ 微信,淘宝。这些都是应用程序,应用程序分3类:桌面应用程序,Web应用程序,移动应用程序应用程序组件规范。

2025-06-23 17:50:00 541

原创 C# 可以把数据转换成字典处理

【代码】C# 可以把数据转换成字典处理。

2025-06-13 11:57:00 90

原创 C# 转换逗号隔开的id

【代码】C# 转换逗号隔开的id。

2025-06-13 11:52:00 87

原创 C# 查看一句代码执行了多长时间

使用 Stopwatch。

2025-04-25 15:55:00 88

原创 Navicat 操作 MySql 修改表结构时保存后直接卡死无反应问题

一、问题如下:  在Navicat中调整表结构,添加新的字段。之后保存的时候就一直显示正在保存,等了一会儿也一直没有反应,点关闭也停止不了保存操作,就一直卡着。二、问题解决  1、查看当前的进程列表:show processlist  会发现有等待的进程:  这些进程状态为Waiting for table metadata lock,等待表元数据锁。  在表informati...

2025-03-07 10:04:00 501

原创 要查看Linux系统中的大文件

你可以使用 find 命令配合 -size 参数。具体命令如下: find /path/to/search -type f -size +100M比如查询当前文件下大于200M的文件:find / -type f -size +200M

2025-02-27 14:07:00 146

原创 无法联网怎么在docker中安装Ribbitmq

如果无法连接互联网,无法在Docker中安装RabbitMQ。但是,您可以使用本地镜像或者手动下载RabbitMQ的Docker镜像并进行安装。以下是使用本地镜像的步骤:从可以上网的计算机上拉取RabbitMQ的官方Docker镜像:docker pull rabbitmq:3-management然后,使用docker save命令将镜像保存为tar文件:docker save -o...

2025-01-14 17:08:00 310

原创 RabbitMQ-死信队列

死信,就是无法被消费的消息,一般来说生产者将消息投递 到broker或者直接到队列里了,消费者从队列取出消息进行消费。但某些时候由于特定的原因导致队列中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有死信队列。死信队列还是队列---只是用来接受特殊的消息----没有被正常消费的消息。 没有被确认的消息;应用场景为了保证订单业务的数据不丢失,需要使用到Rab...

2025-01-13 22:11:00 474

原创 RabbitMQ-集群

RabbitMQ集群----主备关系,在运行的时候,如果非主要节点宕机,程序操作 不受影响; 如果主节点宕机了, 程序会中断操作。 而Rabbitmq集群,会马上让没有宕机的节点参选,选出新的主要节点。 程序重试的时候,会进入到新的节点中执行。 历史消息不受影响的。基于Docker构建RabbitMQ集群1.启动多个RabbitMQ节点使用Docker启动3个RabbitMQ节点,目标如下...

2025-01-13 22:11:00 479

原创 RabbitMQ-消息入队

1 分布式异步的问题对于一个业务线的处理,如果是一个完整的处理,应该是消息正 常进入队列,同时消息正常被消费掉。问题来了:生产者发送消息,在传输过程中,消息丢失了,咋办?消息发到RabbitMq队列,RabbitMq宕机了,咋办?消费者在消费消息的时候,消费异常了,咋办?方案思路1、要保证消息一定能够正常的发到队列中去。2、要保证入队的消息,一定不能丢失。3、要保证一定是正常消...

2025-01-13 22:09:00 487

原创 RabbitMQ-消息消费确认

我们一般使用的是消费者作为被动方接收 RabbitMQ 推送消息,另一种是消费者作为主动方可以主动拉取消息。RabbitMq 服务器推送消息分为隐式(自动)确认和显示确认。1 消费者拉取消息消费者作为主动方拉取消息,每次只能获取一条。using (var channel = connection.CreateModel()){ BasicGetResult result = c...

2025-01-13 22:06:00 427

原创 RabbitMQ-优先级队列及消息配置

优先级队列C# 数据类型 queue----先进先出RabbitMQ---队列-----默认也是先进先出~~RabbitMQ 设置优先级----可以配置让 消费顺序,不按照 先进先出的默认规则;给定的优先级---最终体现在消费者; 优先级越高,消费的时候,就优先消费。就在前面消费案例:设置 { "vip1", "hello2", "world3", "common4", "vip5"...

2025-01-13 22:05:00 474

原创 RabbitMQ-交换机

1 交换机1 工作生活中的交换机/路由器-------转发网络信号,且只是转发 网络信号。2 可以控制黑名单,隐藏网络,权限控制---除了信号不是他提 供的,他只是转发信号服务外,其他的事儿,他是可以控制 的。RabbitMq中的交换机--------转发数据消息2 交换机核心设计有了交换机的设计之后---交换机就决定了消息究竟往哪儿走. 程序设计的角度:结构型设计模式: ...

2025-01-13 16:59:00 688

原创 RabbitMQ-基本使用

1 概述RabbitMQ中的几个基本概念:(1)信道(channel):信道是消息的生产者、消费者和服务器之间进行通信的虚拟连接。为什么叫“虚拟连接”呢?因为TCP连接的建立是非常消耗资源的,所以RabbitMQ在TCP连接的基础上构建了虚拟信道。我们尽量重复使用TCP连接,而信道是可以用完就关闭的。(2)队列(queue):队列是用来进行消息收发的地方,生产者把消息放到队列中,消费者从队...

2025-01-13 16:24:00 383

原创 IOC容器和依赖注入

1 依赖倒置依赖倒置的核心价值:如果没有依赖倒置,全部都是依赖细节,如果分层架构是 A层---B层--C层---D层---E层---F层,下层的修改,可能会导致上层随之改变,F层如果改变,E层要改,D层要改,C层要改......影响很大,成水波式向上影响,架构就的极度不稳定。如果都是依赖于抽象的,抽象即接口或抽象类。 抽象是相对稳定的,修改下层不会影响上层。因为上层不是依赖于具体的,这让...

2024-08-16 17:04:00 641

原创 ASP.NET Core Blazor 5:Blazor表单和数据

  本章将描述 Blazor 为处理 HTML 表单提供的特性,包括对数据验证的支持。1 准备工作  继续使用上一章项目。  创建 Blazor/Forms 文件夹并添加一个名为 EmptyLayout.razor 的 Razor 组件。本章使用这个组件作为主要的布局。@inherits LayoutComponentBase<div class="m-2"> @...

2024-07-03 20:54:00 727

原创 ASP.NET Core Blazor 4:高级Blazor特性

  本章解释 Blazor 如何支持 URL 路由,以便通过一个请求显示多个组件。展示如何设置路由系统、如何定义路由以及如何在布局中创建公共内容。  本章还介绍了组件的生命周期,它允许组件积极地参与 Blazor 环境,这在开始使用 URL 路由特性时尤为重要。最后,本章解释了组件在前面章节描述的父!子关系之外的不同交互方式。  路由特性允许组件响应 URL 中的更改,而不需要新的 HTTP...

2024-06-29 09:07:00 621

原创 ASP.NET Core Blazor 3:使用 Blazor Server (2)

1 准备工作  继续使用上一章项目。  本章展示如何组合Razor组件来创建更复杂的特性。展示如何创建组件之间的父子关系,如何利用属性配置组件,以及如何创建自定义事件,以在发生重要更改时发出信号。还展示了组件如何从父组件接收内容,以及如何使用模板组件一致地生成内容,模板组件可以用一个或多个泛型类型参数定义。在本章结束时,演示了 Blazor应用程序如何对连接和应用程序错误做出反应。2 结合...

2024-06-26 14:17:00 1022

原创 ASP.NET Core Blazor 2:使用 Blazor Server (1)

  Blazor 是 ASP.NET Core 新添加的一个功能,它向 Web 应用程序添加客户端交互性。Blazor 有两个变种,本章将重点介绍 Blazor Server,另一种是 Blazor WebAssembly。解释它解决的问题和它是如何工作的。展示如何配置 ASP.NET Core应用程序来使用 Blazor Server,并描述使用 Razor 组件时可用的基本特性,这是 Bla...

2024-06-24 13:52:00 1182

原创 ASP.NET Core Blazor 1:创建准备项目

  本章将创建贯穿这一部分的示例项目。1 创建项目dotnet new globaljson --sdk-version 3.1.101 --output MyAdvanceddotnet new web --no-https --output MyAdvanced --framework netcoreapp3.1dotnet new sln -o MyAdvanceddotnet ...

2024-06-22 17:45:00 1050

原创 ASP.NET Core应用程序14:创建表单应用程序

  前几章集中讨论了处理 HTML 表单一个方面的单个特性,有时很难看到它们如何组合在一起执行常见的任务。本章将介绍创建控制器、视图和 Razor Pages 的过程,这些页面支持具有创建,读取、更新和删除(CRUD)功能的应用程序。本章不介绍新的功能,目标是演示如何将标签助手模型绑定和模型验证等功能与 Entity Framework Core 结合使用。1 准备工作  本章继续使用上章项...

2024-06-21 14:34:00 394

原创 ASP.NET Core应用程序13:使用过滤器

  过滤器将额外的逻辑注入请求处理。过滤器类似于应用于单个端点的中间件,可以是操作或页面处理程序方法,它们提供了一种管理特定请求集的优雅方法。  本章描述 ASP.NET Core 过滤器特性,并解释如何使用它来更改特定端点的请求和结果,描述不同类型的过滤器,演示了如何创建和应用每种过滤器。还展示了如何管理过滤器的生命周期并控制它们的执行顺序。1 准备工作  本章使用了上章项目。  删除...

2024-06-19 17:19:00 444

原创 ASP.NET Core应用程序12:使用模型验证

  模型验证是确保请求中提供的数据是有效的。  本章描述 ASP.NET Core 数据验证功能。解释了如何显式地执行验证,如何使用属性来播述验证约束,以及如何验证单个属性和整个对象。演示了如何向用户显示验证消息,以及如何通过客户端和远程验证改进用户的验证体验。1 准备工作  继续使用上一章项目。  修改 Views/Form 文件夹的 Form.cshtml。@model Produ...

2024-06-16 16:47:00 595

原创 ASP.NET Core应用程序11:使用模型绑定

  模型绑定是使用从 HTTP 请求获得的数据值,创建操作方法和页面处理程序所需的对象的过程。本章描述模型绑定系统的工作方式;显示它如何绑定简单类型、复杂类型和集合;并演示如何控制流程,以指定请求的哪一部分提供应用程序所需的数据值。  本章介绍了模型绑定特性,展示了如何使用带有参数和属性的模型绑定,如何绑定简单和复杂类型,以及绑定到数组和集合所需的约定。还解释了如何控制请求的哪一部分用于模型绑...

2024-06-15 15:53:00 418

原创 ASP.NET Core应用程序10:使用表单标签助手

  本章描述用于创建 HTML 表单的内置标签助手。这些标签助手确保表单提交到正确的操作或页面处理程序方法,并确保元素准确地表示特定的模型属性。  本章解释 ASP.NET Core 提供的创建 HTML 表单的功能。展示如何使用标签助手来选择表单目标和关联的 imput、textarea 和 select 元素。1 准备工作  本章使用了前一章中的项目。  为准备这一章,替换 View...

2024-06-13 19:43:00 817

原创 ASP.NET Core应用程序9:使用内置的标签助手

  ASP.NET Core 提供了一组内置的标签助手,可以应用最常用的元素转换。使用了内置的标签助手,就不必像前一章一样自己创建自定义标签助手。  本章描述了基本的内置标签助手,并解释了它们是如何用于转换锚、链接、脚本和图像元素的。还解释了如何缓存内容部分以及如何根据应用程序的环境呈现内容。1 准备工作  本章继续使用前一章中的项目。  注释Startup.cs中注释掉前一章标签组件助...

2024-06-05 15:42:00 407

原创 MySQL进阶之索引

1 索引概述  索引(index)是帮助MySOL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。  索引的优缺点优势劣势提高数据检索的效率,降低数据库的IO成本索引列也是要占用空间的通过索引列对数据进行排序,降低数...

2024-06-02 22:22:00 345

原创 SQL Server报错:数据库"YourDatabaseName"的事务日志已满,原因为"LOG_BACKUP"

  通过以下代码可以收缩日志,执行完后就不报错了。--设置简单模式 USE[master] GO ALTER DATABASE YourDatabaseName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE YourDatabaseName SET RECOVERY SIMPLE GO --设置压缩后的日志...

2024-05-30 16:30:00 1150

原创 ASP.NET Core应用程序8:标签助手

1 准备工作  继续使用上一章项目代码,修改Startup.cs。public void ConfigureServices(IServiceCollection services) { services.AddDbContext<DataContext>(opts => { opts.UseSqlServer(Configuration[ ...

2024-05-29 19:30:00 703

原创 MySql报错:Lock wait timeout exceeded: try restadina transaction

  这次是在Navicat上复制了一个表结构和数据准备备份一下,然后要用语句批量处理数据,结果导致项目上的更新操作报这个错误。  原因是因为表中的数据量太大,复制表一时半会卡到那了。  于是我在网上搜索了如下办法。尝试在数据库中杀死线程来终止复制表的操作。SELECT * FROM information_schema.INNODB_TRXSELECT * FROM informat...

2024-05-21 19:59:00 311

正则表达式30分钟入门教程.chm

正则表达式30分钟入门教程.chm

2020-06-06

JSON基础教程.CHM

JSON基础教程.CHM

2020-06-06

JScript.chm

JScript.chm

2020-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除