自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 Java面试:服务降级

服务降级

2023-04-19 15:08:07 235

原创 通过自定义注解控制权限

1、编写自定义注解类/** * 自定义Access注解 * 若使用在类上,这个类的所有方法都进行权限校验,暂不支持 * 若使用在方法上,这个方法进行权限校验 */@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interf...

2019-04-10 10:55:05 794

原创 封装一套RabbitMQ通用发送和接收类

一、发送消息类/** * 消息发送封装类 * * 需要发送消息的模块注入这个类就可以实现消息发送,推荐使用直接发送Bean的方式发送mq消息 */@Component@EnableAsyncpublic class RabbitMqMessageSender { private static Logger logger = LoggerFactory.getLog...

2019-03-02 14:48:51 4506 3

原创 java后台生成微信中用的分享图片

案例:      底图:                  色值转换工具:http://www.atool.org/colorpicker.php代码:public interface ActivityShareImageServise { /**生成活动分享图*/ String generateActivityShareImage(Activity...

2018-12-28 20:05:23 2792 8

原创 ThreadPoolExecutor

简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建于执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用。一.Java中的ThreadPoolExecutor类  java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。...

2018-12-12 10:53:10 128

原创 Fork/Join框架

1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。。...

2018-12-11 19:48:06 111

转载 AbstractQueuedSynchronizer的介绍和原理分析

简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同步器...

2018-12-03 16:03:02 78

原创 本地guava cache缓存

@Componentpublic class AppInitializingBean implements InitializingBean { static Logger logger = LoggerFactory.getLogger(AppInitializingBean.class); @Value("${deploy.env}") private String e...

2018-09-21 16:31:57 176

原创 开源镜像站

阿里云开源镜像站 http://mirrors.aliyun.com/网易开源镜像站 http://mirrors.163.com/ 

2018-08-04 00:35:46 203

原创 MyBatis 分页插件 PageHelper

1、依赖<!--通用分页插件--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.1.1&amp

2018-08-03 16:46:59 262

原创 jetcache

jetcache简介JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memo...

2018-07-23 19:49:26 503

原创 orika

Orika是什么Orika是一个简单、快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复制到另一个JavaBean,这在多层应用开发中是非常有用的。为什么要使用OrikaOrika用于简化多层之间的对象映射,避免苦苦挣扎于手工编码和基于反射的映射。Orika致力于提供一个全面、有效、强大的Java Bean映射解决方案。Orika关注尽可能地自动化,同时根据...

2018-07-23 14:50:04 1725

原创 spring-boot集成swagger

1、什么是Swagger      Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagger的方法和一些常见问题。       Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器...

2018-07-23 11:52:04 165

原创 IDEA Mybatis plugin 免费版安装

安装步骤1.左上角点击File,选择Settings,找到Plugins,出现如下界面:install JetBrains plugin:在IDEA官方内部上选择安装Browse repositories:在IDEA浏览存储库中选择安装install plugin from disk:下载插件安装,插件地址:https://pan.baidu.com/s/1W24bqWJvJ6...

2018-07-21 13:01:30 4926 2

转载 RabbitMQ

来源RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控制、负载均衡等特性,使得RabbitMQ拥有更加广泛的应用场景。RabbitMQ跟Erlang和AMQP有关。下面简单介绍一下Erlang和AMQP。Erlang是一门动态类型的函数式编程语言,它也是一门解释型语言,由Erlang虚拟机解释执行。从语言模型上说,Erlang是...

2018-07-18 18:27:29 503

原创 获取access_token的中控服务器

access_token 是全局唯一接口调用凭据,开发者调用各接口时都需使用 access_token,请妥善保存。access_token 的存储至少要保留512个字符空间。access_token 的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。获取 access_token公众平台的 API 调用所需的 access_token 的使用及...

2018-07-18 18:13:15 5101

原创 Redis 分布式锁

分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:1.互斥性。在任意时刻,只有一个客户端能持有锁。2.不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。3.具有容错性。只要大...

2018-07-18 18:00:30 87

空空如也

空空如也

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

TA关注的人

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