自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西魏陶渊明的博客

天下代码一大抄, 抄来抄去有提高, 看你会抄不会抄

  • 博客(45)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java并发包之Semaphore信号量

信号量这个概念不太好理解举个��解释:以一个停车场是运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入一辆,如果又离开两辆,则又可以放入两辆,如此往复。在这个停车场系统中,车位是公共资源,每辆车

2017-08-30 20:40:15 735

原创 Java并发包之CountDownLatch

CountDownLatch是什么注意: ==CountDownLatch不可重复使用,当计数器减少到0之后,就废了,无法继续使用了。==CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包下。Cou

2017-08-30 20:39:43 636

原创 Java并发包之CyclicBarrier

CountDownLatch是什么注意: ==CountDownLatch不可重复使用,当计数器减少到0之后,就废了,无法继续使用了。==CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包下。Cou

2017-08-30 20:38:54 750

原创 Java并发包之BlockingQueue

一、什么是BlockingQueueBlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种:当队列满了的时候进行入队列操作当队列空了的时候进行出队列操作 因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;同样,当一个线程试图对一个空队列进行出队列操作时,它将会被阻塞

2017-08-29 20:02:28 688

原创 可见性和原子性

首先分析下什么是可见性,只进行抽象分析原子性原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。可见性可见性,是指线程之

2017-08-29 20:01:32 993

原创 重入锁和自旋锁(公平锁及非公平锁)

公平锁,就是很公平,在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO的规则从队列中取到自己 非公平锁比较粗鲁,上来就直接尝试占有锁,如果尝试失败,就再采用类似公平锁那种方式前言重入锁(ReentrantLock)是一种递归无阻塞的同步机制。 重入锁,也叫做递归锁,指的是同一线程

2017-08-29 20:01:06 1911 1

原创 自定义ThreadFactory和ThreadGroup

自定义线程池中线程优秀博文1.ThreadFactory主要方法是 newThread 为每个线程设置名字和属于的线程组public class NamedThreadFactory implements ThreadFactory { /** *原子操作保证每个线程都有唯一的 */ private static final AtomicInteger thread

2017-08-29 20:00:42 1382

原创 ELK服务搭建(二)之Kibana使用说明

前言logstash 通过配置文件把收集到的日志文件,通过正则匹配分析,发送到es服务器构建索引,并通过Kibana展示目录Logstash正则构建查询语句量化分析 Visualize仪表盘 DashboardLogstash正则匹配正则工具 官方文档在logstash目录 mkdir patterns# contents of ./patterns/postfix:STR [a-

2017-08-29 19:59:40 4000

原创 ELK服务搭建(一)之初识

ELKE elasticsearch 负责对日志进行索引L logstash 负责收集日志,输出到elsK Kibaba 负责展示es索引的页面Kibaba5.5.0 只支持Es5.5.0及以上版本安装 elasticsearch注意问题Likely root cause: expected '<document start>', but found BlockMappin

2017-08-29 19:59:13 1394

原创 Logback高级用法

在日常的生产中,尤其是在微服务盛行的今天,我们的服务很可能是作为分布式应用上的一个点,会接受来自不同客户端的请求,那么在服务的为每行日志标记出来自的客户端呢?本篇我们通过介绍Logback的高级用法,来为大家实现。扩展知识在分布式应用的今天,如何通过日志把客户端请求的不同应用的日志串起来,展示呢首先分析原理其实很简单,就是为每个线程保存点私有变量,这个私有变量的值,由我们自定义,用于区分不同的应用

2017-08-29 19:58:30 4641

原创 SpringBoot整合Rabbitmq设置消息请求头

设置请求头,编码,唯一idMessage message = MessageBuilder.withBody(context.getBytes()).setContentType(MessageProperties.CONTENT_TYPE_JSON).setContentEncoding("utf-8").setMessageId(UUID.randomUUID()+"").build()

2017-08-29 19:56:46 4717 2

原创 SpringBoot整合Sentry监控项目日志

Sentry Java版使用简介基本概念Sentry是什么Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。DSN(Data Source Name)Sentry 服务支持多用户、多团队、多应用管理

2017-08-29 19:56:21 4785

原创 SpringBoot自动生成Mapper映射

项目结构 项目中如果使用关系型数据库,配合ibatis使用,只需要建立数据库表就ok,其他的就交给插件去做了。1.pom文件中添加 org.mybatis.generator mybatis-generator-m

2017-08-29 19:53:14 7751

原创 ELK服务搭建(二)之Kibana使用说明

前言logstash 通过配置文件把收集到的日志文件,通过正则匹配分析,发送到es服务器构建索引,并通过Kibana展示目录Logstash正则构建查询语句量化分析 Visualize仪表盘 DashboardLogstash正则匹配正则工具官方文档在logstash目录 mkdir patterns# contents of ./patterns...

2017-08-29 19:42:53 451

原创 ELK服务搭建(一)之初识

ELKE elasticsearch 负责对日志进行索引L logstash 负责收集日志,输出到elsK Kibaba 负责展示es索引的页面Kibaba5.5.0 只支持Es5.5.0及以上版本安装 elasticsearch注意问题Likely root cause: expected '<document st...

2017-08-29 19:42:27 431

原创 Logback高级用法

在日常的生产中,尤其是在微服务盛行的今天,我们的服务很可能是作为分布式应用上的一个点,会接受来自不同客户端的请求,那么在服务的为每行日志标记出来自的客户端呢?本篇我们通过介绍Logback的高级用法,来为大家实现。扩展知识在分布式应用的今天,如何通过日志把客户端请求的不同应用的日志串起来,展示呢首先分析原理其实很简单,就是为每个线程保存点私有变量,这个私有变量的值,...

2017-08-29 19:38:18 550

原创 SpringBoot多数据源配置事务

在多数据源中配置事务,其实对于SpringBoot来很简单,当然这个的前提是首先把多数据源都配好的情况下,如果不会多数据源配置,请看该系列 SpringBoot整合多数据源首先在启动类配置@SpringBootApplication@EnableTransactionManagementpublic class AccountApplication { public static vo

2017-08-28 19:23:26 5955

原创 Spring Boot配置拦截器

SpringBoot拦截器 最近项目中有一个需求,对来访的请求,进行计算,记录下业务处理时间。Spring Boot项目中使用拦截器,超级简单,再次说明一下用法。相信大家一看便懂。1.继承 HandlerInterceptor 实现具体的处理逻辑public interface HandlerInterceptor { boolean preHandle(HttpServletRequ

2017-08-28 19:23:02 675

原创 SpringBoot 序列化器注解使用方法

Json解析工具Jackson@JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。@JsonIgnore此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。 @JsonFormat此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转

2017-08-28 19:22:40 7123

原创 StringBoot集成Rabbit,根据业务返回ACK

为了维护消息的有效性,当消费消息时候处理失败时候,不进行消费,需要我们根据业务区返回ACK,本项目我使用Redis和ack机制双重保险,保障消息一定能够正确的消费首先,接着上部分内容,使用Topic,机制(不明白的,可以回顾上部分内容)上部分内容,我们使用SpringBoot注解,去实现,但是控制权不完全账务,当进行大规模项目时候,不太建议使用 @RabbitListener(queues =

2017-08-28 19:22:16 624

原创 SpringBoot集成Rabbit使用TopicRabbit指定发送集合

Rabbitmq中绑定exchange:flowrouting-key:userbind-queue:flow_user白话文就是,把user绑定到flow_user序列发送方使用routing-key推送://把routing-key发送给名为flow的exchenge,然后exchenge负责向绑定的这个Queue推送 amqpTemplate.convertAndSend("flow","u

2017-08-28 19:21:54 1166

原创 SpringBoot整合Quartz-动态读取任务执行(2.2.1)

本次使用redis作为数据库,存储定时任务类 redis的连接不是重点,重点是解析序列化处理过的任务数组和Quartz如何添加任务1. JobEntity 用来保存执行任务类public class JobEntity implements Serializable { //cron表达式 private String cronExpression; //组名

2017-08-28 19:21:24 1008

原创 StringBoot整合Shiro

首先第一步引入 <!--shiro权限控制框架--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependenc

2017-08-28 19:20:56 1142

原创 Spring整合Quartz2.1.1(执行中,得到application上下文,执行bean方法)

==前文==,Quartz中迭代后,变化很大,让我走了很多的误区,这里简单解释一点,希望大家可以跳过误区,建议大家从下往上读(希望对大家有点帮助),我是一只爱分享的小菜鸟JobDetail和Trigger和Schedule都是接口,统统不能new1.如果只是执行一些自定义的类,其实使用SpringBoot的自带的任务就可以完成,简单的不能想象。这个可以看->我的另一篇SpringBoot原生定时任

2017-08-28 19:20:31 877

原创 Spring Boot项目中自定义注解的使用

Spring Boot项目中自定义注解的使用 项目中常常要打印日志,尤其是在做接口开发中,因为要面临着对前台数据的检查,在这种情况下,如果还是只使用普通的日志方式,如果配置为INFO 那么明显打印的东西是在太多了,在无奈的压迫下,小编我最终还是选择自己使用Aop的方式去记录日志信息,以下是实战演练。作者:@lxchinesszz本文为作者原创,转载请注明出处1.定义注解接口/** * @Pa

2017-08-28 19:19:55 5240

原创 SpringBoot整合druid数据源及添加Druid监控页面

不是不会,只是没见过,代码只是一种工具,首先要会用,应用中使用druid连接池,并添加监控1.首先引入druid坐标<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.11</version></dependency>2.添加druid配置参

2017-08-28 19:17:45 4735

原创 StopWatch工具类统计时间

package com.newlandframework.test;import org.springframework.util.StopWatch;/** * @Package: com.newlandframework.test * @Description: ${todo} * @author: liuxin * @date: 2017/8/22 下午7:...

2017-08-28 19:15:18 506

原创 重入锁和自旋锁

前言重入锁(ReentrantLock)是一种递归无阻塞的同步机制。重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁举个例子-重入锁从例子可以看出,如果同一个线程调用了两次lock方法,第一次lock时候锁定计数为1,第二次调用...

2017-08-28 19:14:40 625

原创 ThreadLocal代码逻辑

本例子主要目的,给每个线程赋予单独的变量副本,使各线程之间不互相影响/** * @Package: com.example.thread * @Description: 序列号生成器 * @author: liuxin * @date: 17/3/31 下午1:50 */public interface Sequence { int getNumber();...

2017-08-28 19:14:06 459

原创 自定义ThreadFactory和ThreadGroup

自定义线程池中线程优秀博文1.ThreadFactory主要方法是 newThread 为每个线程设置名字和属于的线程组public class NamedThreadFactory implements ThreadFactory { /** *原子操作保证每个线程都有唯一的 */ private static final Atomi...

2017-08-28 19:13:27 553

原创 SpringBoot整合多数据源xml方式

项目中遇到需要连接多个数据库,本来使用SpringBoot默认配置连接是非常简单的,但是由于涉及多个数据库,不得不再自定义配置了,一次性整明白,下次就之间copy使用。1.首先学习一个注解@ConfigurationProperties(prefix = "druid")默认注入,配置文件中druid开头的属性。eg:druid.url=jdbc:postgresql://139.198.x.x:

2017-08-25 18:02:02 1059

原创 SpringBoot集成Rabbit使用TopicRabbit指定发送集合

Rabbitmq中绑定exchange:flowrouting-key:userbind-queue:flow_user白话文就是,把user绑定到flow_user序列发送方使用routing-key推送://把routing-key发送给名为flow的exchenge,然后exchenge负责向绑定的这个Queue推送 amqpTemplate.convertAndSend("flow","u

2017-08-25 18:01:38 844

原创 StringBoot集成Rabbit,根据业务返回ACK

为了维护消息的有效性,当消费消息时候处理失败时候,不进行消费,需要我们根据业务区返回ACK,本项目我使用Redis和ack机制双重保险,保障消息一定能够正确的消费首先,接着上部分内容,使用Topic,机制(不明白的,可以回顾上部分内容)上部分内容,我们使用SpringBoot注解,去实现,但是控制权不完全账务,当进行大规模项目时候,不太建议使用 @RabbitListener(queues =

2017-08-25 18:01:05 660

原创 SpringBoot整合Sentry监控项目日志

Sentry Java版使用简介基本概念Sentry是什么Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。DSN(Data Source Name)Sentry 服务支持多用户、多团队、多应用管理

2017-08-25 18:00:44 2268 1

原创 SpringBoot事务注解详解

关系型数据库多用到事务,在传统项目中使用xml配置,配置虽然也还好,但是看着很不美观,在使用SpringBoot框架,就简单的多了,以实战为准,直接上代码@Transactionalspring 事务注解1.简单开启事务管理@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />2.事务注解详解默认遇到

2017-08-25 18:00:18 10580 3

原创 SpringBoot动态修改日志级别

SpringBoot1.5新特性目录安装依赖测试显示日志级别测试修改日志级别1.在pom中添加依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</versio

2017-08-25 17:59:47 4409

原创 SpringBoot配合Tomcat8相关方法

配置管理页面权限 <role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <rol

2017-08-25 17:59:21 2940

原创 Rabbitmq业务流程包含容错排查

流程是这样的,订阅者,发送消息到test交换机,通过route key 分发到绑定的队列,这里涉及到交换机的类型,可以看我上一篇文章。如果没有匹配到这个routeKey就默认发送到AE交换机(fanout模式),这个交换机要设置internal:true意为内部交换机 。AE交换机再把错误的消息,发送到其绑定的队列中,如果test交换机,发送消息被匹配到的队里中,而处理该队列的订阅者,拒绝了或者超时

2017-08-25 17:55:35 1253

原创 Topic和Direct、Fanout匹配解析

RabbitMQ详解MQ常用概念快速入门使用推荐查看 <目录交换机(Exchange) 1.Direct Exchange 根据route key 直接找到队列2.Topic Exchange 根据route key 匹配队列3.Topic Exchange 不处理route key 全网发送,所有绑定的队列都发送 交换机(Exchange)1. Direct Exchange

2017-08-25 17:54:55 5013

原创 StringBoot集成Rabbit,根据业务返回ACK

为了维护消息的有效性,当消费消息时候处理失败时候,不进行消费,需要我们根据业务区返回ACK,本项目我使用Redis和ack机制双重保险,保障消息一定能够正确的消费首先,接着上部分内容,使用Topic,机制(不明白的,可以回顾上部分内容)上部分内容,我们使用SpringBoot注解,去实现,但是控制权不完全账务,当进行大规模项目时候,不太建议使用 @RabbitListener(queues =

2017-08-25 17:54:05 852

javaConcurrentAnimated学习java并发必看

学习java并发库,必看。 1.Semaphore信号量 2.Phaser 3.CyclicBarrier 4.CountDownLatch 等多个并发类,及关于读写锁等机制,动画演示

2017-09-11

Q-Dir多窗口资源管理器

对于经常在系统中找资料多个窗口复制的童鞋来说这个是个好工具,曾经下载这个很不容易,找了很多大的下载网站,结果还是下载下来一堆垃圾,真是对那些自称绿色的网站服了,在这里给大家分享一下,希望大家不要像我那样小心翼翼还下载一些没用的东西。

2016-07-29

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

TA关注的人

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