自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

an-ping的博客

容易忘就写下来

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

转载 mysql锁

锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言就显得尤为重要。...

2021-07-15 18:32:34 154

原创 Java位运算判断权限

& 与运算:都为1时才为1| 或运算:都为0时才为0^ 异或运算: 相同为0,不同为1场景应用:二进制进行权限判断假设有四种权限:int add = 1; //对应二进制为...0001int query = 2;//对应二进制为...0010int update = 4;//对应二进制为...0100int delete = 8;//对应二进制为...1000对于上面得四种权限,我们用二进制表示,可以发现1在不同的位置当一个用户权限的二进制为...1111时,即拥有四种权限;

2021-06-30 10:56:05 534 1

原创 RabbitMQ异常处理方案设计

导语:根据业务给MQ异常处理设置优先级:如低、中等、紧急,当MQ发生异常时通过告警邮件通知和记录到数据库中,对于低和中等的异常采用定时任务轮询去重新投递,紧急的异常例如订单支付等则需要开发者尽快去手动处理最佳。对于MQ中发生的异常有以下三种: confirm异常、returnCallBack异常、队列监听消费异常,在此次实际项目中有监控模块(死信队列的监控,根据业务类型发送告警邮件;是否将异常写入数据库等待定时任务重新投递)和定时任务(创建重新投递任务,告知监控模块投递触发时机)模块协同处理。co...

2020-11-02 17:38:42 1260 3

原创 自定义Mybatis分页插件

Mybatis实现自定义插件需要实现Interceptor接口:* 在mybatis中有四大拦截器,拦截的方法为其接口* Executor(Mybatis的拦截器,执行增删改查)* StatementHandler(sql语法构建拦截器,也是实现分页的拦截器类型)* ParameterHandler(sql参数处理器)* ResultSetHandler(结果集处理,转集合)...

2020-04-20 17:17:30 333

原创 JDK动态代理和责任链模式

JDK动态代理在添加前、后置处理时存在的缺陷?一 在JDK动态代理模式中代理类通过实现InvocationHandler接口,在invoke方法可以调用目标类的方法,并在调用目标方法时实现前、后置处理。jdk动态代理是基于接口实现,角色分为接口、目标类、代理类1 接口:public interface IUser { void say();}2 目标类:...

2020-04-15 18:16:07 375

原创 自定义Lock和Condition实现生产消费模式

package com.example.test;import java.util.Queue;import java.util.Random;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks....

2020-04-14 16:38:10 141 1

原创 烂笔头

一 Java基础:1.1 集合 1 Collection: 1.set :无序、不重复,实现类有:HashSet 、EnumSet、TreeSet、LinkedHashSet 2.queue:队列,实现有Deque(双端队列)、ArrayQueue、LinkedList 3.list:可重复,有序,实现类:Vector、Stat...

2020-03-26 11:58:03 209

原创 SpringCloud- Ribbon与Feign的重试机制

1 背景: 在进行Feign调用时对于耗时较长的业务会发生超时而返回异常,以此需要根据业务需求配置超时时间,其中涉及到Hystrix超时时间和Ribbon超时时间,对于Hystrix的隔离机制分为信号量隔离和线程池隔离,对于请求业务和处理业务在一个线程的推荐采用信号量隔离,对于rpc调用等耗时业务采用线程池隔离,默认超时时长为1s,当超时后会熔断处理。#hystrix的超时时间hystri...

2020-03-26 10:15:35 811

原创 使用Logstash将Mysql数据同步到Elasticsearch

使用logstash将mysql数据导入到elasticsearch过程:1 安装elasticsearch 网址:https://www.elastic.co/downloads/elasticsearch,以下所有过程在win环境下。2 解压启动,在win环境下进入bin目录,双击elasticsearch.bat启动,输入localhost:9200可以看到如下信息:3 安装...

2019-12-20 11:41:58 716

原创 中级题 用户认证+权限控制

采用的是springboot+Jwt+shiro,其实也可以采用spring-security-oauth来实现。有没用到数据库,是在代码中给用户创建的假设的角色和权限1 JWT工具类:package com.irootech.bean;import com.auth0.jwt.JWT;import com.auth0.jwt.algorithms.Algorithm;impo...

2019-10-27 21:56:56 586

原创 springcloud微服务之间相互调用实战

任务一实现:使用脚手架生成deepexi-spring-cloud(服务消费者)、deepeximessage-spring-cloud(服务提供者)registerCenter(注册中心,这个没用脚手架生成) 一 服务消费者,实现用户管理的CRUD,然后在添加用户时调用deepeximessage-spring-cloud发送一条欢迎信息。脚手架好像没有发现有生成快速生成xml、m...

2019-10-27 21:54:30 4027

原创 SpringBoot集成Quartz实现分布式动态任务调度

通过Quartz实现动态的管理任务的执行,通过Quartz将任务持久化到数据库中,在集群环境中确保只有单节点执行,当某一节点出故障后,会切换到另一个节点执行。1 运行环境准备:去官网下载Quartz的压缩包 将docs/dbTables/tables_mysql.sql下的sql文件在Mysql数据库执行。这是Quartz框架负责实现任务调度的自带数据库。2 导入Jar包和quartz...

2019-10-24 15:47:42 1418

原创 RabbitMq中间件原理

消息队列原理:生产者将消息发送到交换机(exchang),通过将消息队列(queue)与交换机进行路由(route-key)绑定(binding),交换机根据路由将消息发送到相应队列,消费者通过监听队列来获取消息。(生产者并不是直接将消息发送给消费者,而是通过发送到交换机,再投递到消费者)1 交换机的类型有哪些呢?direct:一对一,通过route-key投递到队列fanout:一对多...

2019-10-21 12:57:45 248

原创 Java集合

1 在for循环中移除list的元素,以前没注意讲过但又忘了,补充一下如果知道ArrayList的长度,一定指定其长度,避免扩容:(错误示例1) List<Integer> list1=new ArrayList(); for(int i=0;i<20;i++){ list1.add(i); } S...

2019-09-06 11:03:17 138

原创 回顾Socket编程

编写一个客户端与服务端对话的程序:客户端:package com.irootech.controller;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Soc...

2019-09-03 19:05:47 129

原创 Springboot国际化

背景:适应多语言环境,springboot国际化语言处理:一、在static下新建i18n目录(静态文件夹下,位置随意)创建:1 messages.properties(必须要有,可以为空);2 messages_zh_CN.properties(中文对应);内容:user.name="用户姓名"user.password=密码good=商品3 messgaes_en_...

2019-08-26 21:30:51 161 1

原创 SpringBoot整合Shiro实现鉴权

SpringBoot集成Shiro实现权限管理的案例:一 首先设计表结构,可以使用用户表、权限表、角色表、角色权限表、用户角色表。通过赋予用户不同角色来实现权限控制。1 权限表:@Entity@Datapublic class Perssion { @Id@GeneratedValue private int id; private String pers...

2019-07-29 11:43:24 412

原创 Java8新的时间日期API使用(LocalDataTime、Instant)

LocalDate/LocalTime/LocalDateTime使用1.LocalDate类表示一个具体的日期,但不包含具体时间,也不包含时区信息。可以通过LocalDate的静态方法of()创建一个实例, LocalDate也包含一些方法用来获取年份,月份,天,星期几等:LocalDate localDate = LocalDate.of(2017, 1, 4); // 初始化一...

2019-07-19 12:00:40 1158

原创 Jackson使用

import org.codehaus.jackson.*;import org.codehaus.jackson.map.ObjectMapper;import org.codehaus.jackson.map.SerializationConfig;import java.io.File;import java.io.IOException;public class Jackso...

2019-07-18 17:32:45 125

原创 HttpClient使用

//发送无参get请求 public void testGetRequestNullParam() throws Exception{ CloseableHttpClient httpClient= HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://www.baidu.com"...

2019-07-17 11:09:10 551

原创 Java线程和线程池

创建线程的方式:继承Thread 、 实现Runnable接口 、实现Callable接口(可以通过Future获取返回结果)介绍一下通过Callable实现多线程:public class ThreadC implements Callable { public Object call() throws Exception { System.out.pri...

2019-07-12 18:33:35 158

原创 SpringBoot整合JPA(多表关联查询)

Spring Boot Jpa 是 Spring 基于 ORM 框架、Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data Jpa 可以极大提高开发效率。SpringBoot整合JPA实例:1 导入maven依赖jar包: <dependency&...

2019-07-10 17:53:05 12818 1

原创 SQL

返回两个时间之间日期to_days函数 datediff函数select to_days(now())-to_days(20190706) from dual;select datediff(now(),'20190706') from dual;查询数据库昨天和今天的数据sql:select * from 表名 where to_days(now())-to_days(时间字段...

2019-07-09 16:40:59 199

原创 Spring

spring IOC的容器Beanfactory容器 :最简单的容器提供依赖注入,常用的是XmlBeanFactoryXmlBeanFactory beanfactory=new XmlBeanFactory(new ClassPathResource("bean.xml"));Applicationcontext容器:是BeanFactory的子接口,常用的有以下三种:FileSy...

2019-07-03 14:46:58 79

原创 自定义注解通过aop实现操作日志管理

通过自定义注解,然后在控制层方法上加上此注解,通过aop切面拦截到该方法,获取注解值,实现操作日志管理。1 自定义注解:import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import jav...

2019-04-09 18:06:09 403

原创 springboot利用线程池实现邮件发送

最近实现一个邮件推送功能,整理如下:1 编写线程类实现runnable接口:(其中JavaMailUtil为封装的发送邮件工具类)import lombok.Data;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Componen...

2019-04-09 17:56:45 2704 5

原创 关与Mysql

mysql在开发中运用的比较多,所以很有必要了解一番。mysql的存储引擎常用有innodb与myisam,他们区别有哪些呢:1 在事务上:myisam不支持事务,innodb支持事务,这是很大区别。同时myisam不支持外键、是表级锁,因此对于高并发请求处理效率有点低。innodb支持行锁,只是在where是主键是有效的,非主键为表锁,行锁是基于索引的。2 在存储结构上:myisam在...

2019-03-08 17:44:10 167

转载 springboot干货系列(四):集成thymeleaf

正文Spring Boot提供了spring-boot-starter-web为Web开发予以支持,spring-boot-starter-web为我们提供了嵌入的Tomcat以及Spring MVC的依赖。项目结构推荐一个好的项目结构会让你开发少一些问题,特别是Spring Boot中启动类要放在root package下面,我的web工程项目结构如下: root pack...

2019-01-31 20:47:21 182

转载 springboot干货系列(三):启动原理

 正文我们开发任何一个Spring Boot项目,都会用到如下的启动类从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。SpringBootApplication背后的秘密虽然定义使用了多个Ann...

2019-01-31 20:47:08 132

转载 springboot干货系列(二):配置文件解析

原博地址:https://www.cnblogs.com/zheting/p/6707036.html正文Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。接下来,让我们一起来解开配置文件的面纱。...

2019-01-31 20:46:40 153

原创 springcloud-服务注册与调用(熔断机制)

Eureka-server是服务注册中心,服务提供方需要将自己的服务在Eureka注册,消费者才能从Eureka消费服务。在这个过程中参与角色有三个:Eureka-Server(服务注册中心)、Spring-Cloud-Provider(服务提供者)、Spring-Cloud-Consumer(服务消费者)Eureka-ServerEureka服务依然是上篇文章的案例。Spring-C...

2018-12-21 14:45:15 800

原创 springcloud-eureka服务注册中心

用一张图来认识以下:上图简要描述了Eureka的基本架构,由3个角色组成:1、Eureka Server 提供服务注册和发现2、Service Provider 服务提供方 将自身服务注册到Eureka,从而使服务消费方能够找到3、Service Consumer 服务消费方 从Eureka获取注册服务列表,从而能够消费服务案例:1 在pom.xml文件引入依...

2018-12-21 11:55:34 198

原创 springboot使用freemarker模板生成word文档

freemarker是一种web应用组件,类似thymeleaf模板引擎。1 要利用freemarker生成word文档,首先需要创建word文档模板(即.doc文档),需要用户填写的值可以使用${string}代替,但是在后台给Model赋值的时候要名称对应,然后将后缀名改为.ftl。将如模板名称为model.ftl2 再将model.ftl放置在springboot项目的resourc...

2018-12-20 20:49:38 5419 1

原创 springboot发送邮件

springboot引入spring-boot-starter-mail可以更加方便发送邮件,具体应用场景如下:1、发送简单文本2、发送html格式文本3、发送带附件的邮件4、发送带静态图片邮件5、发送指定模板的邮件下面将上述场景封装成工具类JavaMailUtil:1 首先导入jar包 &lt;dependency&gt; &lt;group...

2018-12-05 00:46:42 554

原创 springboot基于WebSocket实现服务端消息推送

一 WebSocket简介HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过send()方法来向服务器发送数据,并通过onmes...

2018-12-01 18:32:22 1199

原创 springboot集成redis

对redis进行数据操作常用的方法是通过jedis和spring-data-redis,具体分场景:在springboot中可以通过spring-data-redis1 在pom.xml导入文件:(注意jar包版本,否则可能会出现找不到class错误) &lt;dependency&gt; &lt;groupId&gt;org.springframework.data&lt;/...

2018-11-30 23:20:55 445

原创 java元注解的使用

一 有时候需要自定义注解,java给了我们是四个元注解(定义注解的注解):1   Target:用来表示直接所修饰的对象范围它的可用范围(ElementType取值有:constructor构造方法、field作用域成员变量、method方法、local_variable局部变量、package包、parameter参数、type类 接口或enum声明、annotation_type用于注...

2018-11-02 16:25:10 145

转载 springboot干货系列(一):入门篇

原博地址:http://www.cnblogs.com/zheting/p/6707032.html正文首先声明,Spring Boot不是一门新技术,所以不用紧张。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快...

2018-09-08 21:52:41 183

转载 oracle表分区详解

原博地址:https://www.cnblogs.com/congcidaishangjiamianju/p/8045804.htmloracle的 分表 详解 -----表分区此文从以下几个方面来整理关于分区表的概念及操作:        1.表空间及分区表的概念        2.表分区的具体作用        3.表分区的优缺点        4.表分区的几种类型及操...

2018-09-08 21:41:17 126

转载 深入解析ThreadLocal

原博地址:http://www.cnblogs.com/dolphin0520/p/3920407.htmlJava并发编程:深入剖析ThreadLocal  想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的...

2018-08-30 22:45:49 114

空空如也

空空如也

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

TA关注的人

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