自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

收破烂的小熊猫

"愿你走出半生,归来仍是少年..."

  • 博客(101)
  • 资源 (9)
  • 收藏
  • 关注

原创 Java爬虫学习(安居客)

Java爬虫学习最近看着搭档使用python爬虫,觉得手痒。然后感觉自己学习java,应该也可以爬虫。就去百度学习了一下java的爬虫框架。国内有几种开源爬虫框架:gecco、WebMagic等。gecco学习文档:http://www.geccocrawler.com/tag/sysc/WebMagic:http://webmagic.io/docs/zh/因为我学习的是gecc...

2019-11-07 09:01:50 3589 15

原创 Java面试分享之List源码会问哪些问题?

怀才就像怀孕,时间长了总会藏不住的......前言List作为我们开发中经常使用的集合类型,在面试中也会经常被问到,作为一个熟读八股文并精通源码的靓仔,心中对 List 的总体结构和细节有所了解的话,基本面试问题都不大。1 面试题1.1 谈谈你对 ArrayList 的理解?多面试官喜欢这样子开头,考察面试同学对 ArrayList 有没有总结经验,介于 ArrayList 内容很多,建议先回答总体架构,再从某个细节出发作为突破口,比如这样:ArrayList 底层数据结构..

2021-09-15 23:13:55 25

原创 傻瓜,自定义注解你会写了吗?

有些人总说自己过的不好,一上秤却又胖了不少“我可以吃一口吗,就一小口~”前言在工作中经常发现,我们经常会使用一些spring体系的注解。如果面试的时候,你跟老板说你会使用注解,老板觉得你这个人还行;但是如果你和老板说你会自定义注解解决问题,老板肯定就会眼前一亮,这是个人才鸭,嗯,小伙子20k够不够…学习目标1)自定义一个注解,搭配aop实现一个日志打印功能2)结合案例,对注解应用深入了解自定义注解实现准备工作先创建一个springboot项目,并引入aop相关依赖。 &lt.

2021-04-08 21:49:29 68

原创 肝了一早上,终于把mybatis的一级缓存和二级缓存原理搞懂了~

今天的沉淀,是助力明天飞向远方的基石~每当自己沉思下来写学习文章的时候,心情总是会得到一片宁静。缓存的概念我们在查询数据时,经常去查询一些条件相同、数据的正确与否对最终结果影响不大的数据,并且每次查询总是去数据库获取连接查询,这样的操作不仅浪费时间还很消耗数据库连接资源。而缓存就是将数据临时存储于内存,这样就能减少数据查询交互的通讯量,减少处理次数,提高我们的查询效率。会话会话就是用户与系统的一次完整的交流,在一次交流过程中会包含多次请求响应,然后发送的请求都只是同一个用户,SqlSessi.

2021-03-20 12:31:48 449

原创 基于Netty实现群聊功能

有你的日子你就是一切,没你的日子一切都是你又是一天新的开始,让我来带领你打开任督二脉。。。前言:在前面有了对NIO、BIO知识的学习,以及对netty结构组的基本了解,接下来将学习一下如何使用netty去实现一个群聊功能,读者可自行去对比基于NIO、BIO、Netty实现群聊功能的不同方式,以更深刻的理解IO网络编程。学习内容:整体思路:1) 编写一个Netty群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)2) 实现多人聊天3) 服务器端:可以监测用户上线,离线,并实现消息.

2021-03-11 11:33:57 124 5

原创 基于NIO实现群聊功能

快过年了,兜里还没钱。。。。贫穷的我只能开始打起了理财的歪主意买基金,可是最近由于疫情原因,A股走势一直不好,理财使本来就不富裕的我,雪上加霜。。。。。。。基于NIO实现群聊功能...

2021-01-31 15:33:15 65

原创 NIO同步非阻塞模型学习使用

别拿奋斗当借口,吃好才能继续走NIO同步非阻塞模型Java NIO(New IO)也有人称之为 java non-blocking IO是从Java 1.4版本开始引入的一个新的IO API。NIO可以理解为非阻塞IO,传统的IO的read和write只能阻塞执行,线程在读写IO期间不能干其他事情,比如调用socket.read()时,如果服务器一直没有数据传输过来,线程就一直阻塞,而NIO中可以配置socket为非阻塞模式。NIO 相关类都被放在 java.nio 包及子包下,并且对原 jav.

2021-01-31 11:44:49 77 2

原创 什么是零拷贝技术(Zero Copy)?

千里之行,始于足下什么是“零拷贝”技术要想要了解“零拷贝”机制,首先要了解在什么地方会用到这个东西。试想一个场景:我们需要从磁盘读取一个文件,然后通过网络输出到一个客户端。一般的文件传输过程考虑这样一种常用的情形:开发者需要将静态内容(类似图片、数据表、文件)展示给远程的用户。那么这个情形就意味着开发者需要先将静态内容从磁盘中拷贝出来放到一个内存buf中,然后将这个buf通过socket传输给用户,进而用户或者静态内容的展示。这看起来再正常不过了,但是实际上这是很低效的流程,我们把上面的这种情形.

2021-01-15 10:54:11 526

原创 实现即时通讯之BIO编程

BIO模式下实现简单的即时通讯需求:需要实现一个客户端的消息可以发送给所有的客户端去接收。(群聊实现)项目功能演示项目案例说明功能清单简单说明:1.客户端登陆功能可以启动客户端进行登录,客户端登陆只需要输入用户名和服务端ip地址即可。2.在线人数实时更新。客户端用户户登陆以后,需要同步更新所有客户端的联系人信息栏。3.离线人数更新检测到有客户端下线后,需要同步更新所有客户端的联系人信息栏。4.群聊任意一个客户端的消息,可以推送给当前所有客户端接收。5.私聊可以选择某个员工,点击

2021-01-11 14:54:09 99

原创 BIO 同步阻塞模型

干饭人,干饭魂,了解了BIO的都是人上人。。。。有时候就感觉很奇怪,在我大学的时候,学这种IO编程总是学得不明不白。但是现在呢?一触即会。哈哈,我jio得我可能天赋异禀~Java BIO 基本介绍Java BIO 同步阻塞模型,属于传统的 java io 编程,其相关的类和接口在 java.io包下。服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器).BIO工.

2021-01-04 19:30:30 62 1

原创 BIO、NIO、AIO的区别

BIO、NIO、AIO最近打算学习一下netty框架,netty是一款用于高效开发网络应用的NIO网络架构。在学习它之前,我觉得有必要对java IO编程知识进行一定的了解。BIO、NIO、AIO也是面试经常会问的问题,这里先进行一个大概的总结,后续会详细介绍。Java BIOBIO称为同步并阻塞是传统阻塞IO模型。主要表现形式为服务端对客户端发起的请求,一个请求就开启一个线程做处理。如果这个连接不做任何事情会造成不必要的线程开销Java NIONIO 称为同步非阻塞,服务器实现模式为一个线

2021-01-04 18:22:23 95

原创 理解阻塞、非阻塞与同步、异步的区别

考虑一千次,不如去做一次;犹豫一万次,不如实践一次;华丽的跌倒,胜过无谓的彷徨,将来的你,一定会感谢现在奋斗的你。

2020-12-22 15:06:52 67

原创 Tomcat性能优化及部署整理

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器Tomcat性能优化整理常见配置详解目录结构/bin:脚本文件目录。/lib:存放Tomcat服务器所需要的所有Jar包。/conf:存放配置文件,最重要的是server.xml。/logs:存放日志文件。/backup:保存了一些配置文件,是在第一次运行了Tomcat服务器以后产生的。它是对服务器进行简单的备份日志。/temp:Tomcat运行时候存放临时文件用的。/webapps:web应..

2020-11-27 17:32:29 218 2

原创 简单使用netty搭建一个http服务器

世上无难事,只要肯登攀。——毛泽东Netty的入门使用常见的http服务器有Tomcat、jetty等,netty也可以方便的开发一个Http服务器。想要完整的实现一个高性能、功能完善的http服务器非常的复杂,本文仅为了方便理解 Netty 网络应用开发的基本过程,所以只实现最基本的请求响应的流程:搭建 HTTP 服务器,配置相关参数并启动。从浏览器或者终端发起 HTTP 请求。成功得到服务端的响应结果。准备工作先创建一个maven项目,引入netty依赖,这里使用4.1.52...

2020-11-25 17:05:26 384 2

原创 java静态代理和动态代理

什么是代理模式?给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 通俗的来讲代理模式就是我们生活中常见的中介。举个例子,当我们想要去租房的时候,可能会通过某中介公司去代理商(中介),通过中介去找到我们心仪的房子。此场景就涉及了3个角色: 真实角色-房主(房屋的真正拥有者)、代理角色(房屋中介等代理商)、接口或抽象类(抽象角色-包含了真实角色和代理角色共同维护的方法- 租房)。代理商是给房屋的主人做代理的,因此在编写代理模式代码的时候要注意:代理角色要包含对原对象的引用。Java中的.

2020-10-20 19:32:02 123

原创 JVM学习笔记-GC日志分析(对象优先在Eden区分配)

前言在进行GC日志分析前,先了解一下JVM虚拟机运行时数据区的主要划分:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是 依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存 将会包括以上几个运行时数据区域。...

2020-09-27 14:51:51 403

原创 JVM学习笔记-如何确定对象已死?

如何确定对象已死?在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对象)了。判断一个对象是否存活有2种方法:1.引用计数算法很多教科书判断对象是否存活的算法是这样的:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。客观地说,引用计数算法(Reference Count

2020-09-24 16:35:25 44

原创 对Springboot项目进行统一异常处理

自定义统一异常处理我们在做项目开发的时候,总是会有各类异常情况的发生。有些时候代码报错,返回的错误码又都是一致,也无法区别到具体的错误信息。且有异常就到处使用try-catch抛出,造成代码冗余。举个例子:我有一个添加页面这个添加页面接口的service层代码是这样写的: /** * 新增页面 * @param cmsPage:serice层进行业务逻辑的处理,传递的是页面填写的信息内容。 * @return */ public CmsPag

2020-07-25 15:29:48 274

原创 JUC并发编程学习(十八) -搞懂单例模式

一个人不可能同时有2个女朋友,如果有,那就是渣男。什么是单例模式单例模式,顾明思议就是一个类只有一个实例,并且这个类负责创造自己的对象,同时确保只有单个对象被创建。这个类提供访问其唯一的对象的方式,我们在使用的时候可以直接调用其方法获取到,而不需要去实例化。首先,来说一下单例模式的核心思想,一般都会写一个私有的构造方法,和一个静态方法用于获取对象。 //单例模式核心思想,构造器私有! private SingleModel(){ //编写相关逻辑 } //静态方法,.

2020-07-11 12:07:30 131

原创 JUC并发编程学习(十七) -5分钟搞懂volatile

基本概念先补充一下概念,java内存模型中的可见性、原子性和有序性。可见性百度百科的讲解,是指对象间的可见性,含义是一个对象能够看到或者引用另一个对象的能力。可见性,是指线程之间的可见性,一个线程修改的值对另外一个线程是可见的。可以将可见性理解为一种通知机制也就是A线程修改了值,其他线程立马就知道修改的结果。比如:用volatile修饰的变量,就会具有可见性。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。所以对其他线程是可见的。但是这里需要注意一个问题,volatile只

2020-06-27 17:48:58 144

原创 JUC并发编程学习(十六)谈谈java内存模型JMM
原力计划

JMM:java内存模型(Java Memory Model ),不存在的东西,一个概念,约定在多线程环境下,线程之间要通信,就不得不提JMM(Java Memory Model )。JMM是一种规范,目的是解决由于多线程通过共享内存进行通信时,存在的本地内存的数据不一致、编译器会对代码指令重排、处理器会对代码乱序等带来的问题。内存划分JMM规定了内存主要划分为主内存和工作内存两种。此处的主内存和工作内存跟JVM内存划分(堆、栈、方法区)是在不同的层次上进行的。如果非要对应起来,主内存对应的是J.

2020-06-25 19:51:13 115

原创 JUC并发编程学习(十五)-异步回调之CompletableFuture
原力计划

FutureFuture接口是Java多线程Future模式的实现,在java.util.concurrent包中,可以用来进行异步计算。Future模式是多线程中一种常用的模式。可以理解为:我有一个任务,把它交给Future去完成。在这期间我可以去做自己想干的事情,过段时间后,我可以直接去Future那提取结果。Future的接口主要有五个方法。public interface Future<V> { boolean cancel(boolean mayInterruptIf

2020-06-21 18:13:03 177

原创 JUC并发编程学习(十四)-任务拆分ForkJoin详解

分而治之思想在古代,皇帝要想办成一件事肯定不会自己亲自去动手,而是把任务细分发给下面的大臣,下面的大臣也懒呀,于是把任务继续分成几个部分,继续下发,于是到了最后最终负责的人就完成了一个小功能。上面的领导再把这些结果一层一层汇总,最终返回给皇帝。这就是分而治之的思想。什么是ForkJoin从JDK1.7开始,Java提供ForkJoin框架用于并行执行任务,它的思想就是将一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。简单的理解,ForkJoin是一个可对任务进行拆分,分而.

2020-06-14 14:23:58 351 2

原创 JUC并发编程学习(十三)-学习Stream流的使用
原力计划

说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如:import java.util.ArrayList;import j.

2020-06-10 22:03:43 169

原创 JUC并发编程学习(十二)-四大函数式接口
原力计划

函数式接口有且只有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而java中的函数式编程体现就是Lambda,所以函数式接口 就是可以适用于Lambda使用的接口。只要确保接口中有且只有一个抽象方法,而java中的Lambda才能顺利进行推导。格式只要确保接口中有且仅有一个抽象方法即可:修饰符 interface 接口名称{ public abstract 返回值类型 方法名称(可选参数信息); //其他非抽象方法内容}由于接口当中抽象方

2020-06-01 15:17:52 155

原创 JUC并发编程学习(十 一)-ThreadPoolExecutor线程池的学习
原力计划

线程池的核心知识就是:三大方法、7个参数、拒绝策略、优化配置线程池原理程序运行的本质是,占用系统资源,CPU/磁盘网络使用。我们希望可以高效的使用资源!池化技术就是不断的演进出来的。池化技术简单的说,池化技术就是提前准备一些资源,以供使用。线程的创建和销毁,以及数据库的连接断开都十分浪费资源。只有是“池”,就会设计到两个常量:minSize:最小容量maxSize最大容量这些都是为了弹性访问,保证系统运行的效率。举一个常见的例子。去银行取钱,一般来说银行会固定开放2个窗口供人.

2020-05-30 18:00:23 142

原创 JUC并发编程学习(十)-阻塞队列、同步队列
原力计划

BlockingQueue队列的特点:先进先出阻塞队列在拥有队列的基本特征的同时,还额外支持两个附加操作。这两个附加的操作支持阻塞的插入和移除方法。阻塞插入队列插入元素时,当队列空间已经使用满了,不得不阻塞阻塞移除队列中有元素,在取元素时可以移除,队列为空时,阻塞不能取出,等待队列中有新的元素才能取出。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。接口架构图

2020-05-27 19:41:37 162

原创 JUC并发编程学习(九)-读写锁
原力计划

读写锁https://www.cnblogs.com/xiaoxi/p/9140541.html对共享资源进行读和写操作,且写的操作没有那么的频繁。在没有进行写的操作的时候,多个线程同时读取一个资源没有任何问题,所以可以同时允许多个线程读取共享资源。但是一个线程在进行写操作时,就不允许其他线程再对该资源进行读和写的操作了。针对这种场景,JAVA的并发包提供了读写锁ReentrantReadWriteLock,它表示两个锁,一个是读操作相关的锁,称为共享锁;一个是写相关的锁,称为排他锁(独占锁),描

2020-05-17 23:18:54 137

原创 JUC并发编程学习(八)-CountDownLatch、CyclicBarrier、Semaphore的使用
原力计划

常用辅助类CountDownLatch减法计数器CountDownLatch:减计数器,使用场景:一间教室有6名学生,放学后一名学生负责锁门。只有等教室里人走完了,才会把门锁上。那怎么有效精准的控制什么时候锁门,使用CountDownLatch减法计数器有效控制。CountDownLatch主要用法:CountDownLatch downLatch=new CountDownLatch(6); //设置计数器初始值countDownLatch.countDown(); 出去一人(产生一个

2020-05-17 16:45:44 131

原创 JUC并发编程学习(七)-Callable学习
原力计划

Callable线程的创建方式主要有Thread、Runnable、Callable这几种,那么他们的主要区别是:1.是否返回值?Runnable无返回值,而Callable有返回值。2.是否跑出异常?Runnable无异常,Callable有异常3.方法不同?Runnable 运行的方法是run,Callable运行的方法是call为了学习Callable,首先我们来写一个简单的线程,代码如下:package com.jp.call;import java.util.concur

2020-05-13 23:10:09 166

原创 JUC并发编程学习(六)-集合类不安全
原力计划

集合类的安全问题,主要分为单线程和多线程情况下。1、List不安全list不安全单线程:安全import java.util.Arrays;import java.util.List;/*** @className:* @PackageName: com.jp.testlist* @author: youjp* @create: 2020-05-04 20:48* @de...

2020-05-06 20:10:44 152 1

原创 JUC并发编程学习(五)-8锁现象
原力计划

以下名词解释:顺序执行:先调用的先执行;随机执行:没有规律,与计算机硬件资源有关,哪个线程先得到资源就先执行,各个线程之间互不干扰将从以下8个方面介绍锁现象1. 多个线程使用同一把锁-顺序执行2. 多个线程使用同一把锁,其中某个线程里面还有阻塞-顺序先执行3. 多个线程有锁与没锁-随机执行4.多个线程使用多把锁-随机执行5. Class锁:多个线程使用一个对象-顺序执行6. Class锁...

2020-05-06 11:15:17 215 4

原创 JUC并发编程学习(四)-生产者与消费者
原力计划

生产者和消费者生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-bufferproblem),是一个多线程同步问题的经典案例。简单说明,就是一个类用于生产,一个类用于消费。生产者生产一定的数据放入管存区,然后重复此操作,同时,消费者消费缓存区的数据。生产者和消费者之间必须保持同步 。要保证生产者不会在缓冲区满时放入数据,消费者也不会在...

2020-05-05 14:58:56 191

原创 JUC并发编程学习(三)-Lock锁

多线程的编程模型这里是引用多线程编程的代码编写模型:1、高内聚,低耦合 :必须保证业务代码的高内聚、低耦合;2、线程去操作(调用对外暴露的方法) 资源类。这里使用一个卖票案例来说明传统的多线程下会出现的问题。3个售票员出售20张票。package com.juc.study.lockdemo;/*** @ClassName:* @PackageName: com.juc....

2020-05-05 14:34:58 172

原创 JUC并发编程学习(二)-进程和线程知识回顾

进程线程知识回顾进程:就是一个应用程序,如QQ.exe ,music.exe程序线程:一个进程中可能包含多个线程,至少包含一个。在java中一个应用程序至少有几个线程?2个, main线程、GC线程并行、并发是什么?并发:指两个或多个时间在同一时间段发生。并发就是是串行的同步,一个任务执行完成才执行下一任务;多线程、多个线程操作一个资源类,快速交替的过程。并行:指两个或多个...

2020-04-16 10:59:25 210

原创 JUC并发编程学习(一)-什么是JUC

什么是JUC?查看了一下jdk1.8的文档,可以看到packge下的java.util.concurrent包什么是JUC:java.util.concurrent包名的简写,是关于并发编程的API。与JUC相关的有三个包:java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks。也查看了一些前...

2020-04-16 10:39:48 4919 2

原创 RabbitMQ消息模型之DirectExchange消息模型实战
原力计划

RabbitMQ多种消息模型实战前面我们学习了RabbitMQ的核心基础组件,了解了基本消息模型由队列、交换机、路由构成。而在RabbitMQ的核心组件体系中,主要有4种消息模型:基于HeadersExchange、DirectExchange、FanoutExchange、TopicExchange的消息模型;在实际生产环境中应用最广泛的莫过于后3中消息模型。本篇文章主要介绍DirectE...

2020-04-09 16:26:00 194

原创 RabbitMQ消息模型之FanoutExchange消息模型实战
原力计划

前面我们学习了RabbitMQ的核心基础组件,了解了基本消息模型由队列、交换机、路由构成。而在RabbitMQ的核心组件体系中,主要有4种消息模型:基于HeadersExchange、DirectExchange、FanoutExchange、TopicExchange的消息模型;在实际生产环境中应用最广泛的莫过于后3中消息模型。本篇主要介绍FanoutExchange消息模型。FanoutE...

2020-04-08 21:45:12 289

原创 RabbitMQ中间件的使用
原力计划

rabbitMQ是一款用于接收、存储和转发消息的开源中间件,在实际的应用系统可以实现消息分发、异步通信和业务模块解耦、延迟处理等功能。RabbitMQ的核心要点在于消息、消息模型、生产者和消费者,而RabbitMQ的“消息模型”有许多种,包括基于FanoutExchange的消息模型、基于DirectExchange的消息模型和基于TopicExchange的消息模型等。这些消息模型都有一个共性...

2020-04-08 14:35:54 150

原创 Redis常见数据结构实战
原力计划

Redis是一个具有高性能的、基于Key-value结构化存储的缓存中间件,支持多种丰富的数据类型,包括String、列表List、集合Set、有序集合SortedSet及哈希Hash存储。本 篇博文将基于Springboot整合Redis的项目以实际业务场景为例,实现上述各种数据结构,使读者真正掌握Redis在实际项目中的使用。目录字符串字符串...

2020-04-02 15:45:56 106

独家liquibase操作手册.rar

本文档适用于想要使用liquibase的小白,文档内容涵盖liquibase的详细操作

2021-09-01

2018年下半年网络工程师上午+下午试题(含答案).rar

2018年下半年网络工程师【上午+下午】真题&&参考答案&&详解.zip”里面包含上午下午两个分开的文档,并且真题与答案也是分开的,方便打印。 PS:我的主页有很多相关的资源,欢迎访问下载。 2018年下半年网络工程师【上午+下午】。

2019-05-22

java开发支付宝支付案例

因为真实环境下的支付需要企业营业执照,所以平时我们进行支付开发的时候只能使用沙盒去测试。这里我也是使用的支付宝沙盒来模拟真实的支付宝开发。

2020-10-17

CAS server可直接部署的war包

 现在市场上大多数单点登录项目,都采用的是CAS(即Central Authentication Server),CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.提供的war包可直接放在tomcat下运行。

2019-08-21

图片压缩下载.zip

最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类。 这个工具类的功能为: (1)可以压缩文件,也可以压缩文件夹 (2)同时支持压缩多级文件夹,工具内部做了递归处理 (3)碰到空的文件夹,也可以压缩 (4)可以选择是否保留原来的目录结构,如果不保留,所有文件跑压缩包根目录去了,且空文件夹直接舍弃。注意:如果不保留文件原来目录结构,在碰到文件名相同的文件时,会压缩失败。

2019-09-17

java邮箱验证码开发

使用163邮箱或qq邮箱向目的邮箱账号发送信息

2019-01-10

springboot-mail.zip

发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装。

2019-08-13

2018年上半年网络工程师上午+下午试题.rar

2018年上半年网络工程师【上午+下午】真题&&参考答案&&详解.zip”里面包含上午下午两个分开的文档,并且真题与答案也是分开的,方便打印。 PS:我的主页有很多相关的资源,欢迎访问下载。 2018年上半年网络工程师【上午+下午】。

2019-05-22

springbootrabbitq.zip

Spring Boot与RabbitMQ的整合,内容非常简单,纯API的调用操作。实现了生产者生产消息发送到消息队列,消费者通过消息中间件获取消息

2019-08-13

空空如也

空空如也

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

TA关注的人 TA的粉丝

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