8 jliang981

尚未进行身份认证

暂无相关简介

等级
TA的排名 7k+

druid监控等插件的实现以及过滤器模式

druid的功能就不多讲了,主要提供数据库连接池的功能,但是支持丰富的监控和日志以及防火墙功能。这些附加功能都是以插件的形式存在的,可以自由定制。本文主要讲解监控、日志等插件的实现,以及怎么集成到druid里。一、 Druid的使用先来看一段使用druid连接池的流程。首先是配置连接池<?xml version="1.0" encoding="UTF-8"?&...

2019-10-26 17:48:00

Mybatis拦截器介绍 - 拦截所有执行的sql

1.1目录1.1 目录1.2 前言1.3 Interceptor接口1.4 注册拦截器1.5 Mybatis可拦截的方法1.6 利用拦截器进行分页1.2前言 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybati...

2019-11-01 17:57:29

Java 实体映射工具 MapStruct器

目录背景常用方式MapStruct1. 引入方式2. 使用方式2.2 类型转换获取转换器背景java分布式系统经常需要做do(数据库访问对象)对象跟dto(业务传输对象)。一般do对象只涉及系统内部跟数据库的交互,如果跟其他系统通过rpc交互,需要定义dto对象。但是do对象跟dto对象有很多字段的名称和类型都是相同的,但是需要程序来做转换。目前常用的方式并发量高的时候,都会有点性能问题。...

2019-10-05 17:56:00

spring中使用@ResponseBody注解返回json,Long类型精度丢失

1.现象发现一个奇怪的bug。对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。2、简单分析@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器(默认使用MappingJackson2Htt...

2019-09-13 19:37:57

IDEA maven 多模块jar pom打包发布问题总结 nexus

在用IDEA构建maven多module项目时,碰到了一些问题,现在归纳总结如下。假如一个maven项目下分为几个module,分别是不同的服务,以及common模块,结构如下:shopping├── common├── mail-service├── order-service└── pay-service则shopping pom大概率是如下内容: <mo...

2019-05-28 16:24:07

一篇有深度的介绍mysql的文章:存储、缓存、锁、文件

先抛出几个问题 1.为什么不建议使用订单号作为主键? 2.为什么要在需要排序的字段上加索引? 3.for update 的记录不存在会导致锁住全表? 4.redolog 和 binlog 有什么区别? 5.MySQL 如何回滚一条 sql ? 6.char(50) 和 varchar(50) 效果是一样的么? 索引知识回顾对于 MyS...

2019-04-14 17:36:07

semaphore注意事项

java 信号量比较变态的一点Semaphore semaphore = new Semaphore(3); Runnable runnable = () -> { try { System.out.println(Thread.currentThread().getName() + "try acquire");...

2019-04-11 15:01:45

rxjava介绍

rxjava适用于大量的任务之间没有依赖关系,可以并发执行的情况。回调方法 (onNext, onCompleted, onError)Subscribe方法用于将观察者连接到Observable,你的观察者需要实现以下方法的一个子集:onNext(T item)Observable调用这个方法发射数据,方法的参数就是Observable发射的数据,这个方法可能会被调用多次,取决于你的实现...

2019-04-11 14:56:04

spring加载数据库的groovy脚本

spring加载数据库的groovy脚本动态加载groovy beanIBM系列spring支持groovy

2019-03-29 16:19:23

java 偏向锁 轻量级锁 重量级锁

因为synchronized使用的对象监视器底层使用的是系统原语来实现的锁,线程挂起恢复的时候,会涉及内核态和用户态的转换,性能比较差。jdk1.6对synchronized做了不少优化,所谓的优化就是在内部减少synchronized的使用,因为有些情况下synchronized是可以避免的。上面只是介绍了jdk的出发点,具体的优化步骤和逻辑,有几篇博客讲的不错,这里先mark一下,有空再来...

2019-03-04 10:10:35

面试:消息队列相关

本文内容思维导图:消息队列其实很简单  “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词。我也在我的多篇文章中提到了这个概念。可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,本文都将带你搞懂消息队列的一些基本理论。如果你是老手,你可能从本文学到你之前不曾注意的一些关于消息队列的重要...

2019-03-03 16:49:53

kafka事务

官方网址用户提供一个事务id,用于初始化生产者。一、额外的概念Transaction Coordinator类似于consumer group coordinator,管理事务日志和生产者的pid。Transaction Log类似于 Consumer Offsets topic,事务日志是事务的持久化存储,存储着每个活动的事务状态。已经完成的事务,其实事务日志就没有意义了。Con...

2019-02-24 22:16:18

JTA 原理与实现

利用 JTA 处理事务什么是事务处理事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )。关于事务最经典的示例莫过于信用卡转账:将用户 A 账户中的 500 元人民币转移到用户 B 的账户中,其操作流程如下 1. 将 A 账户中的金额减...

2019-02-14 12:12:31

Hystrix介绍和使用指南

一、HystrixHystrix是Netflix开源的一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序。提供降级,熔断等功能,并且熔断开关打开之后,会在服务可用之后,自动关闭。spring cloud中有用到。如果你的服务依赖于多个服务,并且不想因为某个服务挂掉,而影响你服务。比如hbase挂掉了,你可以通过降级策略返回默认值,或者直接熔断。Hystrix提供了服务隔离,每个服...

2018-12-23 12:00:49

解读mvn依赖树信息

[INFO] \- com.mogujie.sm:elasticsearch5-boot-starter:jar:1.0.6:compile[INFO] +- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)[INFO] \...

2018-11-28 18:36:18

依赖兄弟模块时,执行mvn命令报错:找不到依赖

有个项目是多模块的,模块A,模块B。模块A和B是同一个父pom下的兄弟模块。模块B依赖模块A,但是模块A又不需要部署到maven仓库。当执行mvn dependency:tree的时候就会报下面的错误: Could not resolve dependencies for project **moduleA**: The following artifacts could not be res...

2018-11-28 17:27:06

java经典面试题

java经典面试题什么是线程安全?又是一个理论的问题,各式各样的答案有很多,我给出一个个人认为解释地最好的:如果你的代码在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。线程安全也可以划分为几个级别,java语言中各种擦偶哦共享的数据分为一下5类:不可变,绝对线程安全,相对线程安全,线程兼容,线程对立。不可变:访问不可变对应,string或者final...

2018-11-15 19:34:38

groovy基础

groovy基本语法groovy默认会导入以下库import java.lang.* import java.util.* import java.io.* import java.net.* import groovy.lang.* import groovy.util.* import java.math.BigInteger import java.ma...

2018-05-26 22:17:47

mysql知识(锁和事务)

mysql知识几篇不错的博客 link 死锁分析 mysql总体介绍锁mysql中的锁有好几种,按照作用范围分为行锁和表锁,gap锁,next-key lock,intention lock(意向锁)。按照作用性质,又分为共享锁和排它锁。还有虚拟的乐观锁与悲观锁。 首先要明白,mysql的锁其实是对索引加锁,如果查询语句中没有索引,则对表加锁。(讨论的是select ...

2018-05-19 15:41:44

redis知识总结

redisredis事务事务对于关系型数据库很重要的功能。比如redis不支持新建一个带有过期时间的key,如果用redis实现分布式锁,一般就是设置一个key,然后设置过期时间,但是这个过程又不能保证事务性。 redis也提供了事务的功能,但是跟平常理解的事务又有点不太一样。 redis的事务只能保证要么全部不执行,要么全部都执行,而不会在某条命令出错之后,把之前的命令回滚掉,取...

2018-05-19 15:39:55

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。