- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 PHP使用PHPMailer发送邮件
一、PHPMailer概述1.1PHPMailer是什么PHPMailer 是一个非常强大的 php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。1.2PHPMailer优点1、在邮件中包含多个 TO、CC、BCC 和 REPLY-TO。 2、平台应用广泛,支持的 SMTP 服务器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。 3、支持嵌入图像,附件,HTML 邮件。 4、可靠的
2020-09-18 22:10:00 3326 4
原创 银联支付服务之公众号支付业务(二)
上一节已经介绍了银联的公众号支付业务,以及如何注册成为开发者,这一节将创建一个控制台应用程序调启微信支付并成功付款。一、请求协议HTTP(S)HTTP方法:GET二、接口地址测试环境:http://58.247.0.18:29015/v1/netpay/webpay/pay生产环境:https://api-mop.chinaums.com/v1/netpay/webpay/pay三、参数3.1URL参数参数名称 参数说明 参数类型 长度 是否必须
2020-09-01 09:43:50 5981 10
原创 JQ实现Table的tr上移下移功能
今日份需求:实现表格行的上移下移,并更新排序值,效果如下:话不多说直接上代码,JQ实现挺简单的HTML代码 <div> <span> <button class="layui-btn" id="doUp">上移</button><button class="layui-btn" id="doDown">下移</button> <
2020-08-21 22:52:30 1488
原创 银联支付服务之公众号支付业务(一)
一、背景在线支付,是我们常见的业务场景,一般我们都会使用微信支付或者支付宝支付接口完成。但是想要学习测试的话是必须开通支付商户的。这个对于想学习使用微信支付的小伙伴来说是一件很不幸的事情,我很早就想学习微信支付,也是无奈没有开通商户,之前的项目也没有做过支付。自从上个月做项目发现公司调用微信支付是使用的银联接口而不是微信支付接口。这两天经理也是安排我学习银联的公众号支付接口,期间遇到了大大小小的问题,百度又苦于使用银联调用微信支付的人和文章太少。所以决定把银联接口的一些经验分享给大家。学习使用银
2020-07-12 17:19:25 3809 6
原创 查看SqlServer被锁表以及解锁
一、背景今天在写一个同事操作5个表的事务时,由于语句出现了报错,没有对事务进行commit。然后发现这5个表都无法查询,一直处于查询中,因为我们是连接总公司的远程数据库开发,查询速度一直很慢。一开始我也只是单纯的以为是网络问题。经经理提醒是不是执行了事务没结束,表被锁定了。我也是第一次遇到裱褙锁定的情况,然后找了下被锁表以及解锁的解决方法。查看被锁的表SELECT request_session_id AS [事务ID], OBJECT_NAME(resource_associ.
2020-07-09 20:46:29 403
原创 JQ获取当前时间到目标时间的间隔
一、需求背景今天开发的时候,有一个需求是需要把某个值存如cookie,过期时间为第二天的0点。我们框架的cookie写入是以小时为单位传入的。那么我就想写一个方法计算当前时间到第二天0点的时间间隔。...
2020-07-09 20:33:28 737
原创 设计模式系列之单例模式(一)
一、什么是单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在-一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。二、单例设计模式的八种方法饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(线程安全,同步代码块) 双重检查 静态内部类 枚举饿汉式(静态常量)应用实例...
2020-04-26 14:49:20 160
原创 Linux系统部署.Net Core3.1项目
.NET Core是一个通用开发平台,由Microsoft和GitHub上的.NET社区共同维护。它是跨平台的, 支持Windows、macOS和Linux,并且可用于设备、云和嵌入式/IoT方案。部署灵活:可以包含在应用或已安装的并行用户或计算机范围中。 ...
2020-03-23 21:37:11 10111 2
原创 Polly熔断降级快速入门
一、什么是熔断降级熔断一词我们可以联想到保险丝的熔断,保险丝也是一种应急机制,当我们线路中某处发生短路造成瞬间的电流过大,保险丝就会熔断以保护我们的线路和其他用电器。微服务中的熔断和保险丝的熔断起到的是类似这作用我们之前讲解了使用了Consul做服务治理和健康检查。即使有健康检查,如果某个服务器或者服务挂掉,会在指定时间内对该服务进行清理。但是也无法做到100%正在这个坏掉的服务杯清理之前...
2020-03-22 18:30:09 996
原创 Consul服务注册发现与健康检查
一、Consul概述Consul是注册中心,服务提供者、服务消费者我们为了服务的高可用,往往会搭建集群,并且这些集群是不固定的。打个比方淘宝平时1000台服务器就能满足需求,但是双11期间可能需要扩充到10000万台服务器,等双11过去后,再裁减到1000台。我们总不能在上端程序(客户端)配置这么多服务器的ip地址吧。服务器的添加和删除都得更新上端程序代码,这显然是不现实的。我们引入Co...
2020-03-19 19:55:01 3608 1
原创 Ngixn搭建集群负载均衡
什么是集群?集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。 ...
2020-03-17 18:49:08 278
原创 Redis入门到进阶之消息队列
一、消息队列1.1消息队列概述消息队列(Message Queue),是分布式系统中重要的组件1.2消息队列相关概念消息队列:即存储消息的容器,图中的两条直线描绘的管道即消息队列 消息:消息即需要写入的队列的数据,图中用A1、A2、A3、An表示 入队出队:消息队列是先进先出的 生产者:数据的来源 消费者:数据的去向...
2020-03-15 11:19:47 327
原创 RabbitMQ入门到进阶系列(二)
第三章:RabbitMQ的工作模式RabbitMQ 提供了 6 种工作模式:简单模式、work queues、Publish/Subscribe 发布与订阅模式、Routing路由模式、Topics 主题模式、RPC 远程调用模式(远程调用,不太算 MQ;暂不作介绍)。3.1简单模式简单模式中发布者、消息队列、消费者是一对一关系。我们可以把发布者理解为给你寄快递的人,消息队列是...
2020-03-11 23:15:36 296
原创 SqlServer数据库主从复制读写分离之配置篇
为什么要读写分离?我们都知道,随着用户的增多,请求数量的增大,单个数据库最终会面临瓶颈。根据二八原则,数据库操作中,写入数据的操作只占20%,剩下的80%为读取操作。那么我们设计主从数据库将读写操作分离,就可以把压力分散到多个库中,并且数据实时性不强的情况下,可以先将写入操作存入消息队列进行缓冲。所以主从数据库读写分离是解决大数据高并发的有效手段。主从数据库架构配置分发服务器...
2020-03-10 20:26:27 4919
原创 高并发学习笔记--如何提升系统性能?
高并发系统设计的三大目标:高性能、高可用、可扩展高并发:是指运用设计手段让系统能够处理更多的用户并发请求,也就是承担更大的流量。它是一切架构设计的背景和前提,脱离了它去谈性能和可用性是没有意义的。很显然嘛,你在每秒一次请求和每秒一万次请求,两种不同的场景下,分别做到毫秒级响应时间和五个九(99.999%)的可用性,无论是设计难度还是方案的复杂度,都不是一个级别的。性能和可用性:是我们实现高...
2020-02-29 19:41:23 1046
原创 C#/.Net微信开发--搭建测试环境
想学习微信公众号,却没有认证的公众号是初学者的一大拦路虎。不过微信体贴我为我们准备了测试号。1、进入开发测试号页面微信公众号-->开发-->开发者工具-->公众平台测试账号2、配置测试号appID、appsecret已经给出我们只需要配置接口配置信息URL:我们服务器域名或地址Token:3-22位英文或数字即可开发者提交信息后,微信服务器将发送G...
2020-02-29 14:46:43 544
原创 高并发学习笔记--架构分层
什么是分层架构?软件架构分层在软件工程中是一种常见的设计方式,它是将整体系统拆分成 N 个层次,每个层次有独立的职责,多个层次协同提供完整的功能。我们在刚刚成为程序员的时候,会被“教育”说系统的设计要是“MVC”(Model-View-Controller)架构。它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理...
2020-02-25 11:47:57 332
原创 高并发学习笔记--通用设计方法
从古至今,长江和黄河流域水患不断,远古时期,大禹曾拓宽河道,清除淤沙让流水更加顺畅;都江堰作为史上最成功的的治水案例之一,用引流将岷江之水分流到多个支流中,以分担水流压力;三门峡和葛洲坝通过建造水库将水引入水库先存储起来,然后再想办法把水库中的水缓缓地排出去,以此提高下游的抗洪能力。 而我们在应对高并发大流量时也会采用类似“抵御洪水”的方案,归纳起来共有三种方法。...
2020-02-24 20:06:12 266
原创 .NET Core开发实战学习笔记--配置框架
前言 配置是应用程序发布到各种环境的必备能力配置框架的核心组件包Microsoft.Extensions.Configuration. Abstractions--抽象包 ●Microsoft.Extensions.Configuration--实现包 在我们通常使用的配置,都是以key和value的形式来存放的,无论是使用Json还是XML本质上都...
2020-02-23 01:09:11 468
原创 RabbitMQ入门到进阶系列(一)
RabbitMQ本质是什么?RabbitMQ是用erlang语言编写的 Rabbitmq遵循 amqp协议(amqp协议: 高级消息队列协议)
2020-02-18 23:47:46 517
原创 .NET Core开发实战学习笔记--使用 Autofac 增强容器能力
什么情况下需要引入第三方容器组件?实际上是大部分情况默认的容器组件是够我们使用的,当我们需要一些特殊的场景比如:基于名称的注入:我们需要按照名称来区分它不同的实现的时候 属性注入:直接把服务注册到某一个类的属性里面去,而不需要定义构造函数 子容器 基于动态代理的AOP:当我们需要在服务中注入我们额外的行为的时候.Net Core 的依赖注入框架的核心扩展点public int...
2020-02-14 00:21:16 1137
原创 .Net Core 使用 Quartz快速入门(二)
上一篇我们通过一个简单案例讲解了如何快速使用Quartz,也遗留了一个问题,那就是面对复杂的业务场景,我们的Trigger如何定义。那这一我们将详细讲解Quartz中的Trigger应用。一、Trigger策略Quartz中有两种Trigger策略分别是: Simple Trigger CronTrigger 二、Simple TriggerSimpleTrigg...
2020-01-11 19:20:51 3402
原创 .Net Core 使用 Quartz快速入门(一)
一、需求场景我们在日常开发中,总会遇到这样的需求:每隔一段时间,执行一次某个任务。 固定某个时间执行任务,例如凌晨12点对当天的数据进行统计。 每个月的第几天,执行某个任务。诸如此类的需求很多,我们总不能人工去干这件事吧 ?所以我们需要引入作业调度工具,也就是今天的主角——Quartz。二、Quartz基本介绍2.1Quartz概述Quartz 是 OpenSymphon...
2020-01-06 21:25:54 7983 3
原创 C#异步多线程入门(一)
一、什么是线程? 线程(Thread)是代码的执行序列或者执行路径。线程与进程的概念有一些相似,它类似于一个轻量级的进程:一个操作系统中可以运行多个进程,一个进程内可以运行多个线程。每个应用程序至少运行在一个线程上。当只有一个线程时,称作单线程应用程序,该线程由系统自动创建。例如下面的.Net Core 控制台应用程序Main方法。 class Program ...
2019-12-11 15:24:06 256
原创 Blazor入门——第一个入门程序
Blazor是一个使用 .NET 生成交互式客户端 Web UI 的框架:使用 C# 代替 JavaScript 来创建丰富的交互式 UI。 共享使用 .NET 编写的服务器端和客户端应用逻辑。 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。使用 .NET 进行客户端 Web 开发可提供以下优势:使用 C# 代替 JavaScript 来编写代码。...
2019-11-15 18:05:31 6570
原创 .NETDocX操作Word文件生成图表
柱形图,折线图等是Word操作中常见的图表操作。那么这节讲的就是.NET操作数据生成这些图表准备工作:引用Xceed.Words.NET.dll,下载链接:https://pan.baidu.com/s/19fPFX7iScHHMWx3mIJg5Gg提取码:d73t1、项目中新建Chart文件夹存储本次例子的类文件和导出文件,2、并创建ChartSample类作为操作类,3、C...
2019-09-13 17:50:59 2345
原创 ASP.NET MVC使用Spring.NET实现控制反转和依赖注入(一)
一、什么是控制反转和依赖注入呢?IOC(inversion of control)控制反转模式;控制反转是将组件间的依赖关系从程序内部提到外部来管理; 创建对象的权利由开发人员自己控制New。转到由容器控制。DI(dependency injection)依赖注入模式;依赖注入是指将组件的依赖通过外部以参数或其他形式注入; 通过容器来创建对象的时候,在对象的初始化时可以给一些属性、构造函数的...
2019-08-18 15:20:18 479
原创 C#PDF转Word
C#实现PDF文件转Word文件,需要引入Spire.Pdf.dll和Spire.License.dll,免费版本的Spire.Pdf只支持转换10也以内的PDF。这里为大家提供了付费版的百度网盘下载链接: https://pan.baidu.com/s/1R3BhMQh8XwAUcE-Pa_OOBA 提取码: 4k1f下载好后,把Spire.Pdf.dll和Spire.License.dll...
2019-08-12 13:23:38 5304 8
原创 简单实现ASP.NET MVC Ajax无刷新上传图片
这里使用到了from.js,可以到官网下载或者从这里下载:http://pan.baidu.com/s/1c2JS60C。首先在项目中引入jq和from.js接下来在视图中创建表单<body> <form id="form1"> <input type="file" name="file" /> <...
2019-08-11 14:28:58 833
原创 C#使用NPOI实现Excel和DataTable的互转
什么是NPOI?NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。使用NuGet安装NPOINuGet直接搜索NPOI,目前版本是v2.4.1,将其安装至项目即可。安装完成后,项目会自动为我们添加这4个引用...
2019-08-04 12:06:54 6008 5
原创 通过反射遍历Model对象获得属性与赋值。
今天开发中遇到一个问题,一个model有80多个属性(字段),现需要给这些属性赋值。如果使用判断取一一匹配的话,估计需要几百行代码。那么有没有很好的办法能够自动匹配属性并赋值呢?答案肯定是有的——反射遍历属性。我这里建了一个控制太应用程序进行测试,并建了一个Student的model类,并给了3个字段。Student /// <summary> /// ...
2019-08-02 13:40:49 938
原创 ASP.NET Datatable转Json
首先安装Newtonsoft.Json项目引用命名空间:Newtonsoft.Json、Newtonsoft.Json.Converters代码部分
2019-07-02 21:12:59 965
原创 动态规划经典例题(java代码实现)
1、斐波那契数列题目描述:有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?输入:输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级输出:对于每个册数用例,请输入不同走法的数量 import java.util.Scanner;public...
2019-04-21 15:36:41 4879
原创 ASP.NET MVC 数据注解详解
日常开发中,表单数据的提交和验证是最频繁的任务之一。数据验证又包括客户端验证和服务端认证(我们这里就不对客户端验证和服务端验证进行过多的阐述),每个项目和表单的数据实体和类型都不会一样,但又及其相似。在WebForm时代,我们通过编写大量原生的JS和JQ来进行客户端验证,然后又编写大量的后台代码进行服务端验证,虽说复制粘贴改一改也能很快的完成,但是就没有更简便的办法了吗?ASP.NET MVC...
2019-03-31 01:14:15 1511
原创 JQ日常开发小记
jQ判断复选框(checkbox)是否选中前台代码:<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》JQ代码:if($('#checkbox-id').is(':checked')) { // do something }JQ实现checkbox 全选和全不选<html>...
2019-03-17 22:11:05 233
consul_1.6.2.exe
2020-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人