- 博客(70)
- 收藏
- 关注
原创 Stream API
Stream API 主要操作:筛选与切片filter(Predicate) 筛选元素,从流中排除不满足Predicate的某些元素limit(n) 截断流,使其元素不超过给定数量skip(n) 跳过前面n个元素,若元素不足n个,则返回空流distinct() 去重,通过流所生成元素的hashCode()与equals(...
2019-02-14 17:34:20
1085
2
原创 线程池ThreadPoolExecutor
主要流程如下,如果看懂了,那么这篇就可以跳过了。图片来源:https://www.cnblogs.com/KingJack/p/9595621.html下面是线程池内容的详情核心内容:ThreadPoolExecutor一般来说使用线程池的方式,可以通过工具类Executors,比如:Executors.newSingleThreadExecutor(); // 单个线程的线...
2019-02-14 17:32:26
844
原创 记一次Dubbo、Log4j2使用Maven打成可执行Jar问题
中间的坑就不多说了试过很多插件,都有问题,只有用shade打包没问题,中间集成log4j2,必须排除一个脚本文件,也是经过各种Google,看源码等等。最终解决方式如下: <plugins> <plugin> <groupId>org.apache.maven.plugins</group...
2019-02-14 17:28:34
1068
原创 log4j2 日志脱敏/特殊处理
一、最简单方式如果你对日志进行特殊处理的需求,可以只通过一个正则表达式完成,那么使用原生方式&amp;amp;amp;lt;PatternLayout pattern=&amp;amp;quot;%m%n&amp;amp;quot;&amp;amp;amp;gt; &amp;amp;amp;lt;replace regex=&amp;amp;quot;正则表达式&amp;amp;q
2019-02-14 16:51:11
18965
2
原创 SpringBoot(十六):SpringBoot整合Mybatis-Plus
Mybatis-Plus 总的来说比Mybatis Generator更加好用,公司自己搭的框架也是用的这个,还算方便。本节版本虽然只用到了基本特性,但可以满足大部分的增删改查。一、环境准备SpringBoot 1.5.10.RELEASEMybatis-Plus 2.1.9Mybatis-Plus 官方地址:http://mp.baomidou.com/po...
2018-06-05 20:53:31
44234
14
原创 SpringBoot(十五):SpringBoot整合Redis
一、环境准备Redis-x64-3.2.100.zipSpringBoot 1.5.10.RELEASERedis-x64-3.2.100.zip 下载地址:https://github.com/MicrosoftArchive/redis/releasespom依赖: <!-- redis --> <dependency&...
2018-06-05 18:26:32
2328
原创 SpringBoot(十四):SpringBoot整合Memcached
一、环境准备memcached 1.4.5SpringBoot 1.5.10.RELEASEjava_memcached-release_2.6.6.jarmemcached 1.4.5 windows 下载地址:http://www.runoob.com/memcached/window-install-memcached.htmldanga memcached java c...
2018-06-05 18:25:55
10010
1
原创 SpringCloud(六):服务网关(Zuul)
一、服务网关官方文档: https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul路由在微服务体系结构的一个组成部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,并将/api/shop映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。Ne...
2018-06-04 17:28:28
6759
原创 SpringCloud(五):断路器(Hystrix)
一、简介http://projects.spring.io/spring-cloud/spring-cloud.html#_circuit_breaker_hystrix_clients Netflix开源了Hystrix组件,实现了断路器模式,SpringCloud对这一组件进行了整合。 在微服务架构中,一个请求需要调用多个服务是非常常见的。hystrix主要是用来防止服务雪崩...
2018-06-04 17:28:04
1285
原创 SpringCloud(四):服务消费(Feign)
一、Feign介绍 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。二、Feign消费者pom.xml ...
2018-06-04 17:27:37
943
原创 SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)
一、什么是Ribbon Ribbon是Netflix公司开源的一个负载均衡的项目,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。Feign已经默认使用了Ribbon。负载均衡容错多协议(HTTP,TCP,UDP)支持异步和反应模型缓存和批处理二、Eureka服务提供者集群先启动上篇文章中...
2018-06-04 17:27:11
1044
1
原创 SpringCloud(二):服务的注册与发现(Eureka)
一、什么是服务注册与发现Spring Cloud Eureka 模块提供的功能是被动式的服务发现。服务注册:每个用户去聊天室服务器上注册。服务发现:这样他的好友们就能看到你,你同时也将获取好友的上线列表.微服务中,服务就相当于聊天室的用户,而服务注册中心就像聊天室服务器一样。目前服务发现的解决方案有Eureka,Consul,Zookeeper等等。SpringCloud默认使...
2018-06-04 17:26:43
1438
原创 SpringCloud(一):了解SpringCloud
一、SpringCloud 简介首先看看SpringCloud官方的介绍。 Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service disco...
2018-06-01 18:17:32
1577
原创 SpringBoot(十三):SpringBoot整合RabbitMQ
如果对RabbitMQ不熟悉的,建议先看RabbitMQ系列教程。一、环境准备RabbitMQ 3.7.4SpringBoot 1.5.10.RELEASE <dependency> <groupId>org.springframework.boot</groupId> ...
2018-06-01 18:14:47
3031
6
原创 RabbitMQ(八):RabbitMQ消息确认机制之confirm串行
一、Confirm模式生产者将信道设置成confirm模式,一旦信道进入confirm模式,所有在该信道上面发布的消息都会被指派一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者(包含消息的唯一ID),这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会将消息写入磁盘之后发出,broker回传给生产者的确认消...
2018-06-01 18:12:37
2179
2
原创 RabbitMQ(七):RabbitMQ消息确认机制之事务机制
一、使用RabbitMQ可能存在的问题服务器异常数据丢失问题解决方案:采用持久化数据,即声明队列时设置queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)durable = true生...
2018-06-01 18:12:13
6784
3
原创 RabbitMQ(六):主题模式
一、主题模式官方内容参考:http://www.rabbitmq.com/tutorials/tutorial-five-java.html 跟路由模式类似,只不过路由模式是指定固定的路由键,而主题模式是可以模糊匹配路由键,类似于SQL中=和like的关系。二、topic交换机这个就不解释了,配置路由键的时候可以配置 *, # 来模糊匹配* (star) ca...
2018-06-01 18:11:27
4935
3
原创 RabbitMQ(五):路由模式
一、路由模式官方内容参考:http://www.rabbitmq.com/tutorials/tutorial-four-java.html 跟订阅模式类似,只不过在订阅模式的基础上加上了类型,订阅模式是分发到所有绑定到交换机的队列,路由模式只分发到绑定在交换机上面指定路由键的队列。二、direct交换机生产者申明一个direct类型交换机,然后发送消息到这个交换机指...
2018-06-01 18:10:43
9560
1
原创 RabbitMQ(四):订阅模式
一、订阅模式官方内容参考:http://www.rabbitmq.com/tutorials/tutorial-three-java.html即一个生产者发送消息给多个消费者,且每个消费者都收到一次,也即是一个消息能够被多个消费者消费。类似于我们订阅同一微信公众号,微信公众号推送图文,我们每个人都能收到一份。二、fanout交换机之前我们直接发送消息到队列,这里指定的交...
2018-06-01 18:03:57
1135
原创 RabbitMQ(三):工作队列
一、工作队列官方文档:http://www.rabbitmq.com/tutorials/tutorial-two-java.html简单队列不足:不支持多个消费者即一个生产者可以对应多个消费者同时消费,相比简单队列支持多消费者。因为实际工作中,生产者服务一般都是很简单的业务逻辑处理之后就发送到队列, 消费者接收到队列的消息之后,进行复杂的业务逻辑处理,所以一般都是多个消费者进行处理。...
2018-06-01 18:03:31
890
1
原创 RabbitMQ(二):简单队列
一、简单队列官方内容参考:http://www.rabbitmq.com/tutorials/tutorial-one-java.html即一个生产者对应一个消费者,一对一的关系,不允许多个消费者消费。二、代码演示连接RabbitMQ工具类package cn.saytime.rabbitmq.util;import com.rabbitmq.client.Co...
2018-06-01 18:02:11
1179
1
原创 RabbitMQ(一):RabbitMQ安装
一、安装RabbitMQ这里为了方便,采用Docker安装,不会Docker的同学,安装windows版本的RabbitMQ吧,因为Linux系统安装因为版本问题,可能会出现各种各样的问题。[root@Basic ~]# docker pull rabbitmq:management二、启动RabbitMQ[root@Basic ~]# docker run -d --...
2018-06-01 18:01:18
965
1
原创 SpringBoot(十二):SpringBoot整合Kafka
一、准备工作 提前说明:如果你运行出问题,请检查Kafka的版本与SpringBoot的版本是否与我文中的一致,本文中的环境已经经过测试。Kafka服务版本为 kafka_2.11-1.1.0 (Scala), 也就是1.1.0SpringBoot版本:1.5.10.RELEASE提前启动zk,kafka,并且创建一个Topic[root@Basic kafka_2....
2018-04-15 16:45:04
38273
7
原创 Kafka(四):Java操作Kafka
一、准备工作 提前说明:如果你运行出问题,请检查Kafka的版本与Maven kafka client的版本是否与我文中的一致。环境:Kafka版本为 kafka_2.11-1.1.0 (Scala), 也就是1.1.0提前创建一个Topic[root@Basic kafka_2.11-1.1.0]# bin/kafka-topics.sh --create --zo...
2018-04-15 16:43:56
4428
1
原创 Kafka(三):Kafka集群
一、相关知识 备份因子最多为集群服务器数量,如果只有一台服务器,那么备份因子只能设置为1,三台kafka集群的话,备份因子可以设置为2或者3,我们来看设置不同参数服务器的表现: 假设我们现有三台Kafka服务器集群,每个节点的broker.id分别为0/1/2,然后创建一个Topic,有三个分区,备份因子为3[root@Basic kafka_2.11-1.1.0]...
2018-04-15 16:43:16
1391
原创 Kafka(二):Kafka安装与使用
一、安装Kafka官方快速安装文档:http://kafka.apache.org/quickstart安装kafka下载最新版本kafka[root@Basic apps]# wget http://mirrors.shu.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz[root@Basic apps]# tar -zxvf ...
2018-04-15 16:42:47
1291
原创 Kafka(一):初识Kafka
一、消息队列相关概念JMS ==> JAVA API JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。从使用角度看,JMS和JDB...
2018-04-15 16:40:17
2286
原创 Mybatis(八):Mybatis-Spring 整合
官方文档:http://www.mybatis.org/spring/zh/getting-started.html一、依赖 // Spring dependency> groupId>org.mybatisgroupId> artifactId>mybatisartifactId> version>3.4.6versi
2018-01-08 15:51:23
690
原创 Mybatis(七):Mybatis Generator
Mybatis Generator 自动生成代码工具首先,还是一样,学东西看官网:http://www.mybatis.org/generator/index.html不看官网就看我的代码吧。。。一、依赖project> modelVersion>4.0.0modelVersion> groupId>cn.saytimegroupId> artifact
2018-01-08 15:51:01
736
原创 Mybatis(六):动态 SQL
官方介绍:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种
2018-01-08 15:50:24
730
原创 Mybatis(五):一对多级联查询
主要是使用来实现关联。直接上代码,一看就懂。User.javapackage cn.saytime.domain;import java.util.List;/** * Created by L on 2018/1/3. */public class User { private Long id; private String username;
2018-01-08 15:49:50
2869
原创 Mybatis(四):一对一级联查询
关于级联查询,会涉及到Mybatis的”N+1”问题,之后讲解什么是”N+1”问题以及怎么解决。主要是使用来实现关联。有两种方式来实现关联。嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型。嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集。首先,让我们来查看这个元素的属性。你会看到,它和普通的只由 select 和 resultMap 属性的结果映射不同。=
2018-01-08 15:49:02
1211
原创 Mybatis(三):批量操作
批量操作分为批量插入和批量更新主要使用foreach collection="list" item="item" open="(" close=")" separator="," index="index"> #{item.xx}, #{item.xx}/foreach>collection="list" 其中list是固定的,如果是数组就是arrayitem
2018-01-08 15:48:29
20581
1
原创 Mybatis(二):插入操作返回主键
插入数据并返回主键这种需求很常见,所以列出来。一、实现方式1. 使用useGeneratedKeys+keyProperty (推荐)简单来说就是配置:insert id="" useGeneratedKeys="true" keyProperty="id"> 将插入的ID赋值给设置的keyProperty对象属性字段里面,一般也就是对象的ID,比如插入Use
2018-01-08 15:47:49
9080
原创 Mybatis(一):入门
Mybatis应该对于任何用Java的人来说都不陌生,以前对于知识有些没有系统性的整理和学习,所以这里把自己当做小白,再次学习下Mybatis。在此,多说点没用的。学习新东西的最好的途径就是官网,因为以后要学习最新的东西的时候,没有那么多的教学视频和博客给你,甚至需要Google国外的网站。MyBatis官方文档,http://www.mybatis.org/mybatis-3/zh/i
2018-01-08 15:42:07
908
原创 SpringBoot(十一):SpringBoot发送邮件
之前一段时间没有上优快云发表,自己本地记在有道云的,现在都发出来,希望对你们有帮助。 ··· 发送邮件一、依赖<!-- javax.mail --><dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.0</version></
2018-01-03 17:02:02
17750
10
原创 SpringBoot(十):SpringBoot使用FastJson
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Andr
2018-01-03 16:59:06
4010
原创 SpringBoot(九):SpringBoot使用Druid数据源
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池)一、依赖为了测试,使用jdbcTemplate<!-- jdbcTemplate --><dependency> <groupId>org.springfra
2018-01-03 16:58:07
45620
10
原创 SpringBoot(八):SpringBoot整合Log4j
SpringBoot默认使用日志框架logback一、依赖 <!-- spring boot start --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusion
2018-01-03 16:50:52
12715
原创 SpringBoot(七):SpringBoot整合Swagger2
相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理Swagg
2017-07-10 23:01:42
71353
17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人