自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写Bug小能手

我可是见过UFO的

  • 博客(20)
  • 收藏
  • 关注

原创 推荐系统-基于物品的协同过滤推荐算法完整实现(从原始数据到推荐物品-C#版)

由于最近在用C#写一个项目,项目的关键部分就是需要用到推荐算法,以前基本没有去了解过推荐算法,看了很多资料,了解到目前基于物品的协同过滤推荐算法是最符合我的项目的。所以就动手从数据库的连接取原始数据到最终的推荐实现了这个算法,在具体实现过程中碰到了很多坎坷,在此记录下我用C#实现这个算法整个过程的思路和具体实现代码,其他语言大致相同,将代稍加改动就可。推荐算法相关介绍(来源于网络资料)1....

2019-12-22 10:19:10 7235 11

原创 事件驱动模型&IO模型

事件驱动模型是一种计算机编程模型,它通过等待事件的触发,在事件被触发时执行对应的处理函数。这种模型下,程序不再按照严格的顺序执行命令,而是以事件为驱动进行执行。事件驱动模型更适合处理大量事件和复杂的业务场景,并且可以提高系统性能和响应速度。熟悉和运用事件驱动模型在某些场景下可以提高代码的效率和稳定性,同时增加代码的可扩展性。可以通过继承ApplicationEvent类来自定义一个事件类,然后在合适的位置使用ApplicationContext发布该事件。

2023-05-26 15:32:15 1897 1

原创 通用操作日志处理方案

通用操作日志处理方案介绍比对,AOP拦截+注解 + SPEL实现操作日志.通过方法注解,通过AOP拦截的方式记录日志,让操作日志和业务逻辑解耦。我们可以在注解的操作日志上记录固定文案,这样业务逻辑和业务代码可以做到解耦,让我们的业务代码变得纯净起来。该种方式可以自定义处理支持跨表、批量和字段注释。

2023-05-04 17:04:15 1090

原创 延时队列(Delayed)实现(支持失败重试机制自定义重试时间)

最初的业务场景就是:需要需要使用restTemplate调用个接口并且调用失败后需要延时重复调用(最多3次),第一次5秒,第二次10秒,第三次15秒。1. 主要功能最起初的话思考如果只是简单这样的话其实也好实现,重写httpClient里面就有相关的超时重试机制,但是如果要是实现了某个整体的方法来进行失败重试那不能更好。所以就根据这个想法实现了以下的几个功能:可以更简单的针对整个方法来进行延时或者有失败重试的调用执行。 可以设置首次是否延迟执行以及延迟执行的时间。 可以设置失败重试调用的

2020-10-10 14:57:42 2794 1

原创 设计模式个人理解【持续更新】

关于设计模式的一些个人理解以及示例代码。会持续的进行更新上传。所有的实例已经提交到git中。1 抽象工厂模式抽象工厂模式的详情介绍请查看:抽象工厂模式介绍【菜鸟教程】个人理解:/** * @program: springbootdemo * @description: 抽象工厂模式测试类 * * 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对

2020-05-30 09:08:25 262

原创 spring定时任务Scheduled注解源码详细分析

我们都知道再spring 中使用定时任务可以直接在要执行定时任务的方法上面加注解@Scheduled(cron="0/1 * * * * ?")。但是为什么只需这简单的一个注解就能执行定时任务,我们来看源码一点点分析。在项目中必须还加@EnableScheduling才能真正的启动定时任务,也就是去注册执行定时任务。我们来看@EnableScheduling的定义:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Impo

2020-05-13 14:21:21 2274

原创 Redis分布式锁实现以及错误案例分析

最近看了一下分布式锁的知识,分布式锁在实际中用的还是比较多的,因为在高并发的情况下,不适用分布式锁的话会导致数据肯定是有问题的,例如电商平台的秒杀商品库存的问题。选用redis的原因就是:1. Redis有很高的性能。2. Redis本身就是单线程的所以不存在并发的问题。3. 以及Redis命令对此支持较好,实现起来比较方便。话不多说,直接看代码,关于一些细节问题和解释我都已...

2020-03-16 15:31:31 372

原创 SpringBoot学习日记四(整合实现AOP(自定义注解)-注解式拦截&方法规则拦截)

AOP的介绍我就不说了,大家自行百度。还是springBootDemo这个项目,使用aop,先在pow.xml中引入依赖。<!--AOP依赖,此依赖已包含AspectJ相关依赖包。--><dependency> <groupId>org.springframework.boot</groupId> <artif...

2019-06-29 16:32:52 746

原创 SpringBoot学习日记三(整合mybatis使用传统的SqlSessionTemplate来实现通用Dao操作)

在学习日记二中,我们springbot+mybatis实现是通过mapper接口,mapper.xml。每一个的mapper.xml都对应一个mapper接口,我们的service调用的时候也是调用对应的mapper接口然后去操作数据库。所以当数据库的表多的情况或者sql语句复杂的情况下,为了项目的维护方便。以及不必需要那么多的mapper接口。所以我们可以通过传统的SqlSessionTem...

2019-06-29 16:23:12 2610 1

原创 SpringBoot学习日记二(整合mysql+mybatis实现前后台完全分离网站登录功能)

--------------------先在pow.xml中引入mybatis依赖和mysql的依赖--------------------<!--mybatis依赖--><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>myba...

2019-06-29 16:09:42 411

原创 SpringBoot学习日记一(创建springBoot项目+输出helloword)

springBoot框架之前的学习整理,看了网上的介绍感觉springboot会大大提升开发效率,简化开发的配置文件工作,极大方便了我们的开发。特此在此将我的springBoot学习之路从头开始记录整理,方便自己的学习总结和查看,也为其他在学习springboot的人给些参考和帮助,项目的开发工具用的是Idea。下面开始构建我的一个springBoot项目,项目名为springBootDemo...

2019-06-29 16:02:50 1317

原创 在后台发送POST、GET请求并获得返回的JSON数据进行解析成JObject或者对象类(泛型)——从头详解C#版

平常我们后台请求接口返回了json格式的字符串,可用于Controller层直接返回给前台展示数据使用。最常用的这是如此。但是如果我们想直接在后台发送请求并拿到的JSON字符串数据进行使用和逻辑处理,那么对于后台开发人员来说JSON字符串操作是很不方便的,将JSON字符串转换为JObject类型或者相应的对象类来操作会很方便。下面是具体实现过程:此工具类名为HttpUtils,需要手...

2019-05-31 11:22:54 2515 2

原创 c#/Asp.Net中实现AOP的两种方式(Spring.Net,PostSharp)

AOP就是面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要功能日志记录,性能统计,安全控制,事务处理,异常处理等等。主要意图将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为...

2019-01-25 16:01:57 3321

原创 C#窗体运行提示线程间操作无效: 从不是创建控件的线程访问它

笔者在写c#窗体项目时候,碰到了线程间操作无效: 从不是创建控件的线程访问它这个异常。这个异常得原因就是:访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。出错的情形:所以在某...

2018-12-11 21:17:29 17818 1

原创 DataSet、DataTable与List(实体类)相互转换实例_改进版

DataSet、DataTable与List&lt;实体类&gt;相互转换类:using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Text;using System.Threading.T...

2018-12-11 21:15:14 2628 1

原创 C#使用EF(EntityFramework)关于访问数据不同步问题

由于对c#EntityFramework的了解还不够,滥用EF,导致我在写一个c#窗体项目的时候,遇到了这个问题并让我花费了大量的时间去修改。写下此文来记录我犯的错误。我的项目场景是:winfrom窗体程序,允许许多客户端同时运行在不同的机器上的,客户端分为用户和管理者。用来实现不同的功能。全部客户端访问的是同一数据库。但是不管是winfrom窗体还是web应用程序数据使用EF(Enti...

2018-12-11 21:03:17 2051

原创 高数离散型随机变量期望(本例:生活中超市抽奖问题)编写Java程序来自动计算

这是上学期由于课程需要,需要用编程来解决求出关于高等数学概率论与数理统计中的期望问题。所以当时我就选了在生活中实际应用最广泛最常见的离散型随机变量的期望(超市抽奖问题),现在整理一下记录。数学期望来源:在17世纪,有一个赌徒向法国著名数学家帕斯卡挑战,给他出了一道题目:甲乙两个人赌博,他们两人获胜的机率相等,比赛规则是先胜三局者为赢家,一共进行五局,赢家可以获得100法郎的奖励。当比赛进行...

2018-12-11 21:00:14 1816

原创 报错:Apache提示 the requested operation has failed无法启动问题(最全!)

一. 是80端口被其他程序或者服务给占用了;解决办法:在命令行使用netstat -aon|findstr "80"     这个命令就可以查看到使用80这个端口的程序了。然后我就看到了一些使用80端口的进程PID,通过tastlist /FI "PID eq ***" (***表示PID)就可以看到是哪些程序在使用了(或者直接通过任务管理器-&gt;进程-&gt;查看-&gt;选择列,把PID勾...

2018-04-15 12:14:38 22787 12

原创 分页技术,小白也能看懂(从后台传json到前台解析显示)

这是一篇我在初学习过程中,遇到的动态数据分页显示的问题,前台采用Ajax传给后台,后台在访问数据库取出分页数据再转换为json格式传递给前台,前台再解析显示到表格中。在此写出我在做的过程中遇到的问题,可以让其他人少走弯路。前台方面会用到分页的插件,这是传送地址,http://www.jq22.com/jquery-info15943,下载下来,这插件是没有数据交互的,我们要做的就是把数据从数据...

2017-11-16 18:53:53 9535

转载 java中List对象排序通用方法

本文实例讲述了java中List对象排序通用方法。分享给大家供大家参考。具体分析如下:在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能。只要把第一次查出来的结果存放在session中,就可以对list重新排序了。一般对list排序可以使用Collec

2017-03-20 18:18:22 451

空空如也

空空如也

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

TA关注的人

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