自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 springboot+rediss实现分布式定时任务

【代码】springboot+rediss实现分布式定时任务。

2023-09-23 17:41:56 224

原创 本地布隆过滤器同步至redis

本地布隆过滤器值同步redis

2022-06-07 11:58:25 360

原创 快速排序法实现

public class QuickSort { public static void main(String[] args) { Integer[] arrys = new Integer[]{13,11,10,3, 7, 1,14,1, 2, 6, 5, 4,9,12}; sort(arrys, 0, arrys.length - 1); System.out.println(Arrays.asList(arrys)); } .

2022-05-25 17:11:22 126

原创 spring里面的定时任务的理解

在用spring自带的定时任务编写业务代码时,只需要在类上面加上@Scheduled注解并配上cron表达式即可完成一个定时任务的开发,那么这个注解的背后原理是什么样的呢?其实spring并没有自创什么定时任务处理器,它也是用的java提供的ScheduledThreadPoolExecutor这个类实现的定时任务,所以搞清楚这个类的实现原理,也就明白了spring的定时任务的实现原理首先看一下ScheduledThreadPoolExecutor的继承关系可以看到这个类本身就是一个Thre

2022-05-16 18:01:04 525

原创 通过反射对比两个对象值是否相同

适用情况:两个对象属于同一个类,如果类没有重写equals方法,可通过反射对比对象属性值。如果对象的属性里面包含了数组、List、Set或者Map的时候,只会按顺序去对比这些集合里面的值,比如里面对象里面有一个List属性,里面的值是 a、b,另外一个对象的属性值是b、a,虽然两个对象的List属性的值都是a、b,但是因为顺序不同,所以这里判断这两个对象值是不同的。public class BeanCompareUtils { private static final Logger

2022-03-31 20:43:05 1438

原创 spring事务理解

spring事务使用方式:1、通过注解的方式:@Transactional在需要配置数据库事务的方法上加上上面的注解即可使用spring事务2、使用事务模板代码创建事务源码解读:比如在使用@Transactional注解时候,spring框架通过aop的方式拦截带有@Transactional注解的方法,解析@Transactional注解里面配置的事务传播方式、事务隔离级别等信息源码实现:org.springframework.transaction.interceptor.Tra

2022-02-21 18:14:13 182

原创 字符串转LocalDateTime

在使用DateTimeFormatter将字符串转成LocalDateTime时,“时”要用“HH”表示,不然转换报错例(成功):LocalDateTime dateTime=LocalDateTime.parse("2021-01-02 10:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));如下则报错:LocalDateTime dateTime=LocalDateTime.parse("2021-01-02

2022-02-21 14:33:32 15298 1

原创 lettuce执行原理

io.lettuce.core.protocol.AsyncCommand 命令io.lettuce.core.FutureSyncInvocationHandler 执行具体command命令的地方io.lettuce.core.protocol.CommandHandler 向redis服务器发送指令/从redis服务器那儿接收指令lettuce客户端通过io.lettuce.core.protocol.CommandHandler向redis服务器发送指令,并接收redis服务器返回的消息

2021-09-03 18:06:57 1937

原创 ReentrantLock获取锁和释放锁

ReentrantLock分为公平锁和非公平锁,也就是FairSync(公平同步器)和NonfairSync(非公平同步器)这两个同步器来实现公平锁和非公平锁FairSync和和NonfairSync都是集成AQS这个抽象队列同步器,主要是实现了AQS的tryAcquire这个方法,而这个方法就是获取锁资源,当这个方法返回true时表示当前线程获取到锁了,如果返回false则表示当前线程没有获取到锁,需要将当前线程加到获取锁的等待队列里面去。而FairSync和和NonfairSync这两个同步器的try

2021-08-19 14:25:26 300

原创 C#发送邮件

///邮件内容实体类public class Email { /// <summary> /// 接受人账号 /// </summary> public string[] To { get; set; } /// <summary> /// 抄送 /// </summary> public string[] CC { .

2021-03-10 14:00:32 479

原创 Spring AOP的底层原理分析

一般我们在开发springboot项目的时候通过在类上面标注@Aspect这个注释就可以实现一个AOP的功能,那这背后的实现原理是什么呢?首先我们来写一个小样例1、新建一个Aspect拦截类@Component@Aspectpublic class MyAspect { @Pointcut("execution(* y.com.testapp.*.*(..))") public void point(){} @Before("point()") publi

2021-02-07 17:42:15 404 1

原创 spring 异步编程之 @Async 的执行过程分析

spring异步编程,通过在配置类上添加@EnableAsync注解,并在需要进行异步执行的方法上添加@Async注解即可实现异步变成。先上一个例子测试a、不获取异步方法的结果先不获取异步方法的结果,看代码执行结果可以看到主线程一下在就运行完了,等了3秒过后异步方法也执行完了,说明main方法所在的主线程和异步方法不在同一个线程上执行b、当获取异步方法的结果运行结果可以看到当主线程获取异步方法的结果的时候,主线程会被阻塞。2、分析debug调试一下上面

2021-02-05 17:35:32 827

原创 Future实现一个简单的异步功能

在使用ThreadPoolExecutor构建线程池的时候我们可以通过调用submit()方法得到一个Future的结果,这样就实现了一个异步调用方法的功能了,现在我们自己试着来实现一个简单的异步方法1、首先来看一下Future这个接口里面有哪些内容里面比较重点的有get()和get(long,TimeUnit)这个两个方法,这两个方法也就是我们异步得到执行结果的关键点咯2、编写具体的实例public class FutureTest { volatile boolean i

2021-02-04 11:27:03 418

原创 Hystrix用到的几个技术

首先Hystrix用到了AOP、动态代理、观察者模式、命令模式等几个技术和方案首先来说说动态代理的实现1、动态代理a、新建一个被@HystrixCommand注解的服务类b、新建一个Controller用来接收前端Request请求上图中 HelloService利用spring的注解来生成实例c、通过浏览器访问http://localhost:{port}/ribbon/test这个路径的请求,当请求进来是dubug看helloService实例对象可以看到生成的.

2021-02-04 09:49:34 210

原创 装饰器模式和代理模式

1、装饰器模式:动态地给一个对象添加一些额外的职责。重点是调用者主动给目标对象动态新增功能2、代理模式:为其他对象提供一种代理以控制对这个对象的访问。重点是调用者不用知道目标对象是什么,是怎么创建的,只需要告诉代理对象自己需要什么。实现方式:a、装饰器模式: 1、新增一个接口,接口就一个方法表示要向数据库插入数据public interface DB { /** * 向数据库中插入一个记录 * @param value */ void ..

2021-02-01 14:03:45 1788 1

原创 springboot--实现自定义包的自动注册bean功能

当我们自己生成一个springboot项目的jar包的时候,假设我们在另外一个springboot项目里面引用我们生成的jar包,如何在这个项目启动的时候自动注册jar包里面的bean呢?方式1:在生成包的时候在META-INF这个文件夹里面生成一个spring.factories文件,在这个文件里面注册我们的config配置类方式2:使用@Enable注解的方式实现过程方式1:通过spring.factories文件注册1、构建一个spring项目 autoconfigt.

2021-01-05 17:49:15 1034

原创 多线程 状态 锁 的理解

1、线程状态有:a、创建状态;b、就绪状态;c、运行状态;d、等待状态;e、阻塞状态;f、结束状态其中等待状态和阻塞状态理解:当前线程调用了wait()、sleep()、join()等方法的时候会进入到等待状态。进入等待状态的线程没有机会获取cpu的使用权,只有执行了唤醒操作或者定时时间(执行了wait(时间)、sleep(时间)进入等待状态的)到了,等待状态的线程就会进入就绪状态,才有机会获...

2020-03-24 10:46:12 276

原创 NPOI实现 Excel导入导出

实现对象集合写入到Excel和Excel数据读出到对象集合的功能/// <summary> /// 自定义列属性 /// </summary> public class ColumnAttribute:Attribute { public string ColumnName { get; set; } p...

2020-03-11 15:11:24 227

原创 泛型T和通配符?的理解

通过一个例子说明新建一个动物基类 Animalpublic class Animal {}新建两个子类(狗和猫)public class Dog extends Animal {}public class Cat extends Animal {}新建一个动物类型(Animal)的的类集合(假设这个类集合实现了集合功能)public class Ani...

2020-03-03 16:55:51 366

原创 SignalR+Redis做横向扩展(集群)

问题背景:当SignalR应用部署在一台服务器的时候,随着用户量的增加,服务器的承载能力肯定会达到瓶颈,这时候就需要考虑多部署几台服务器来缓解压力解决办法:多台服务器部署SignalR应用,一台服务器部署Redis服务如上图,一台SignalR服务器对应一个用户群,SignalR应用服务器和Redis服务器之间采用发布-订阅模式。当用户群1的用户向用户群2的用户发送消息的时候,消息先到...

2019-11-26 10:21:25 3131 2

原创 根据数据库表结构生成C#类文件

这是一个小工具,用来根据数据库表结构来生成对应的C#类文件,目前只支持Sql Server首先打开这个程序的界面如下可以选择数据库类型,需要填写数据库的连接字符串。目前只支持Sql Server当填完数据库连接地址之后可以点击测试连接进行测试,测试成功后可点击“下一步”会弹出如下界面这里面可以选择需要生成类文件的表“类命名空间”为生成的类文件里面的namespace...

2019-07-17 14:33:46 1444

转载 mysql 8.0 安装方法

直接贴一篇博客吧,里面有详细的安装步骤

2019-04-26 22:49:19 122

转载 Python跨服务器通信注意事项

Python可以使用multiprocessing模块实现跨服务器消息通信的功能,消息以队列的形式传播,这个就类似于RabitMQ了,首先是新建一个接受消息的主应用master.py,代码如下:#!/usr/bin/env python3# -*- coding: utf-8 -*-'''Distributed processing task_master'''import ra...

2019-03-01 14:44:33 698

原创 像CSS选择器读取HTML元素那样读取XML值

闲来无事写个程序来读取xml文本内容。使用微软提供的接口读取xml数据不能像jQuery和CSS那样方便的读取HTML元素,于是自己写个程序来实现类似的功能,代码如下:public class XmlReader { /// &lt;summary&gt; /// 读取xml节点值 /// &lt;/summary&gt; ...

2019-02-27 14:49:38 178

原创 .net core MVC+autofac

怎样在.netcore MVC里面利用autofac实现管道注入?public IServiceProvider ConfigureServices(IServiceCollection services)        {            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2...

2018-11-30 16:07:58 578

转载 Autofac 批量注入

如果有很多实现接口需要用到autofac进行注入,是不是需要调用ContainerBuilder.RegisterType()这个方法很多次?那有没有一个偷懒的方法呢?只需要三四行代码就可以实现所有接口的注入呢?有的第一步:创建如下这样一个空接口 public interface IDenpendency    {    }接口名称可以随便取第二步:创建需要注入到autofac...

2018-11-29 11:01:21 4775 2

转载 .net core Web资源打包与压缩

转载于博客园的一篇文章,方便以后学习原文连接

2018-11-27 10:20:41 809

原创 SQL Server中char(n)和nchar(n)的不同含义

在SQL server中,char(n)表示存储固定长度为n个字节的字符,一个英文或者标点符号占用一个字节,一个中文占用两个字节,所以char(n)可以存放n个英文或者标点符号,或者n/2个中文nchar(n)表示存储固定长度为n字符长度的字符,因为nchar类型的字段是Unicode编码,所以每一个英文、标点符号或者中文都是占用2个字节,即nchar(n)可以存放n个英文、标点符号或者中文,...

2018-08-31 10:31:34 12488

原创 分块读取文件流

大文件分块读取

2017-03-09 17:10:56 3061

原创 如何通过代码实现自动安装、启动和卸载Windows服务

自己写完了windows服务之后,该怎样自动安装、卸载和运行呢?

2017-03-08 09:31:48 2907

原创 SignalR入门学习记录

SignalR有两种客户端和服务器端的数据交互模式:长连接模式和Hub(集线器模式)1、SignalR的长连接模式服务器端,新建一个继承PersistentConnection的自定义类(如果是vs2013,则编辑器新建项目里面会有创建“永久链接类”选项,这里我是用的vs2012,需要自定义个类)这个类的作用就是处理服务器接受客户端发送过来的消息以及将消息发送到客户端,如下:using

2017-02-09 16:47:31 1152

转载 利用StateServer实现Session共享

1、更改web.config 中的 tcpip=localhost:42424" cookieless="false"/> 注:tcpip=localhost:42424  tcpip的值可以设置为远程电脑的ip,如果设置为localhost说明session的值存放在本地服务器上面,如果设置为远程ip的话,则session存放在该远程服务器上。2、打开session所在服务器的“服务

2016-11-29 21:04:06 2707

原创 H5手机页面滑动异步加载数据

怎样实现手机版的web页面在滑动的时候异步加载数据,直接贴代码,可以直接新建一个html页面进行测试哦,注意这里要引用jQuery插件                    $(document).bind("scroll", srcollEvent);        $(document).bind("touchstart", startEvent).

2016-10-13 20:53:19 6922 1

原创 怎样在iis6 和 iis7 中配置自定义的IHttpHandler类

现在我们有一个解决方案,里面有两个项目,分别命名为common和test,在common这个项目中我们新建了一个名为MyHandler的类,该类继承了IHttpHandler这个接口。在test这个项目中添加common这个项目的引用。为了应用MyHandler这个自定义的响应事件,我们需要在web.config这个文件中进行相应的配置,在iis7中,我们的iis托管管道模式有两种分别是集成模式和

2016-05-04 23:00:08 1195

原创 关于Java和C#的内部类的小记

今天在看Java方面的书籍的时候看到这样一段话,说在Java中的内部类不能包含静态方法和字段,之后嵌套类中可以包含(内部类和嵌套类说的都是类中的子类,只不过嵌套类指的是静态的子类,用static修饰),我就在想C#中是不是也有这样的要求呢。于是打开编译器开始尝试,结果发现C#中的内部类是可以包含静态字段和方法的,不过在除该内部类所在的外部类之外的其他类中访问这些静态字段和方法的时候是不能通过内部类

2016-03-22 20:30:19 1094

原创 Java中implements和extends的小记

implements和extends针对Java中的类和接口有不同的用法在类中:implements后面接的是接口(后面可以跟多个接口,多个接口之间用","隔开),代表实现的意思,extends后面接的是基类(只能跟一个基类),代表扩展的含义在接口中,接口后面只能跟extends,extends后面可以接多个接口或者基类,代表扩展的含义。虽然extends和implements都用于类

2016-03-15 22:35:23 557

原创 原来Java中的继承和C#中的继承是不一样的

因为之前在学校里学的是Java,C#是自学的,一直感觉Java和C#就像是孪生兄弟,不过今天才发现原来Java中的继承和C#中的继承还是有点不一样的 在Java中子类继承父类的方法,如果在子类重新定义了父类方法的实现,那么这个过程就是重写,且只能是重写,而在C#中不一样,在C#中可以用virtual修饰函数,表示该函数是虚函数,而Java中是没有这个关键字的,所以问题就出现在这里了。请看示例 在

2016-03-10 23:53:51 2719 4

原创 关于C#中类方法的重写和覆盖

在C#中改变类中相同名称的方法的实现过程中有三种方式:重载,重写和覆盖。 首先重载是指具有相同的方法名,通过改变参数的个数或者参数类型实现同名方法的不同实现。 重写则是只在继承中,子类通过override关键字修饰方法,实现父类和子类相同方法的不同实现,注意,父类方法必须是用virtual或者abstract关键字修饰的虚方法或者抽象方法,例如: public class A {

2016-03-09 22:27:04 7286

原创 关于C#多线程处理

using System; using System.Collections.Generic; using System.Linq; using System.Text;using System.Threading;namespace 控制台程序 { class MonitorSample { public class MyThread

2016-01-05 20:24:13 376

uploadify异步文件上传插件

uploadify异步文件上传插件

2016-10-26

空空如也

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

TA关注的人

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