java
ly_bab
好好学习天天向上 !
展开
-
zuul 重写路由请求
zuul 重写路由请求比如 我们在转发请求时候,添加open 前缀public class RequestPathFilter extends ZuulFilter { @Value("${forward.pathPrefix:}") private String forwardPathPrefix = ""; @Override public String filterType() { return FilterConstants.ROUTE_TYP原创 2020-09-29 15:03:44 · 694 阅读 · 0 评论 -
spring kafka配置优化
生产者配置下面用的是 kafka-clients-2.0.1.jar 的原生配置# 用来初始化连接kafka(不用配置全部节点,会动态发现)bootstrap.servers=172.28.15.138:9092,172.28.15.195:9092,172.28.15.145:9092# 生产者缓存发送记录,如果生产速度过快,buffer占满,则生产者会阻塞 max.block.ms 直到抛出异常。并且不是全部用来缓存记录,比如压缩也会用到 默认 32 * 1024 * 1024 (32m)bu原创 2020-09-09 19:51:12 · 1409 阅读 · 0 评论 -
maven ArchetypeDescriptor
ArchetypeDescriptorThis is a reference for the Archetype descriptor used to describe archetypes's metadata.The metadata about an archetype is stored in the archetype-metadata.xml file loca转载 2017-01-18 14:36:30 · 873 阅读 · 0 评论 -
项目中 List 查询结果缓存说明
一般 List 查询缓存方法主要有以下两种。把 整个list作为一个value缓存缓存list中的每个对象。循环去缓存取。目前来讲 大家更倾向于第二种方法。第二种方法有一个变种。就是每个对象不是用key value 存, 而是用 hash 存。方便复用。像一般的分页展示也是使用第二种方式缓存实现。原创 2017-08-10 11:47:31 · 2339 阅读 · 0 评论 -
正则替换分组
记录一下java正则表达式的两个替换方法的用法,因为很有用,而且我以前还不知道[java] view plain copymatcher.appendReplacement(sb, replaceContent); [java] view plain copy转载 2017-11-19 21:05:02 · 924 阅读 · 0 评论 -
Guava Cache内存缓存使用实践-定时异步刷新及简单抽象封装
缓存在应用中是必不可少的,经常用的如redis、memcache以及内存缓存等。Guava是Google出的一个工具包,它里面的cache即是对本地内存缓存的一种实现,支持多种缓存过期策略。 Guava cache的缓存加载方式有两种:CacheLoaderCallable callback具体两种方式的介绍看官方文档:http://ifeve.com/google-guava转载 2017-11-30 12:08:17 · 1315 阅读 · 0 评论 -
Java线程池执行的任务抛出异常看不到日志
问题描述: 最近项目中一些异步执行的逻辑没有运行异常却没有打出日志 给定位问题带来麻烦??问题分析接下来我们来看一下java中的线程池是如何运行我们提交的任务的,详细流程比较复杂,这里我们不关注,我们只关注任务执行的部分。java中的线程池用的是ThreadPoolExecutor,真正执行代码的部分是runWorker方法:final void runWork转载 2017-12-01 13:40:41 · 11621 阅读 · 1 评论 -
java中写入文件时换行符是用"/r/n"还是"/n"?
java中写入文件时换行符是用"/r/n"还是"/n"?/r 叫回车 Carriage Return /n 叫新行 New Line 但是都会造成换行 使用 System.getProperty("line.separator")来获取当前OS的换行符,可以在调试的情况下看到! 各系统应当是: /r Mac /n Unix/Linux /r/n Window转载 2017-12-04 21:25:03 · 712 阅读 · 0 评论 -
git reset revert 回退回滚取消提交返回上一版
git reset revert 回退回滚取消提交返回上一版总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面转载 2017-12-08 09:28:01 · 372 阅读 · 0 评论 -
java自定义base64
public class MyBase64 implements Codec {private final static Logger LOGGER = LoggerFactory.getLogger(MyBase64.class);private final static String STANDARD_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcd...原创 2018-07-26 09:45:08 · 732 阅读 · 0 评论 -
sping boot 中使用 redis 分布式锁
public class RedisLock { private static Logger logger = LoggerFactory.getLogger(RedisLock.class);private static final String LOCK_MSG = "OK";private static final Long UNLOCK_MSG = 1L;privat...原创 2018-09-14 17:11:26 · 307 阅读 · 0 评论 -
dubbo_远程同步调用原理
Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 Dubbo缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。连接个数:单连接连接方式:长连接传输协议:TCP传输方式:NIO异步传输序列化:Hessian二进制序列化适用范围:传入传出参数数据包较小转载 2017-03-13 09:26:26 · 4450 阅读 · 0 评论 -
java并发编程实践笔记14
自定义Semaphore和ReentrantLock主要实现利用jdk的Semaphore和ReentrantLock互相委托,实现自定义的Semaphore和ReentrantLock。使用ReentrantLock实现Semaphore下面是自定义的Semaphore代码:/** * 自定义 * * 委托给 lock 和condition实现 * Created by Admi原创 2017-01-19 00:41:28 · 592 阅读 · 3 评论 -
maven 构建archetype 文档
知识点补充生成jar exclude 配置文件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version>原创 2017-01-18 15:38:15 · 326 阅读 · 0 评论 -
Java类加载器总结
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始化:为类的静态变量赋予正转载 2015-07-13 10:42:34 · 357 阅读 · 0 评论 -
java文件下载文件名乱码(转)
response.setHeader(...)下载中文文件名乱码问题 关于中文文件下载的问题,网上的咨询和答疑已经很多,我原来处理下载的代码如下: Java代码 response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(f转载 2015-07-17 16:27:08 · 1018 阅读 · 0 评论 -
servlet 获取 post body 体 (用流读取为空的问题)
目前基于rest风格的很多API开始使用通过body data来传输来代替之前的key-value传输方式。在java servlet或者springmvc中可以通过如下代码来获取并图片通过流方式传输的数据: 1InputStream is= null; String contentStr=""; 2转载 2015-08-03 16:36:13 · 23388 阅读 · 2 评论 -
java json
各个JSON技术的比较JSON技术的调研报告一 、各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,co转载 2015-08-17 10:25:05 · 413 阅读 · 0 评论 -
基于Tomcat7、Java、WebSocket的服务器推送聊天室
前言 HTML5 WebSocket实现了服务器与浏览器的双向通讯,双向通讯使服务器消息推送开发更加简单,最常见的就是即时通讯和对信息实时性要求比较高的应用。以前的服务器消息推送大部分采用的都是“轮询”和“长连接”技术,这两中技术都会对服务器产生相当大的开销,而且实时性不是特别高。WebSocket技术对只会产生很小的开销,并且实时性特别高。下面就开始讲解如何利用转载 2015-08-17 11:56:23 · 570 阅读 · 0 评论 -
java byte[] 与int float long 等的互相转换
package java.io;/** * Utility methods for packing/unpacking primitive values in/out of byte arrays * using big-endian byte ordering. */class Bits { /* * Methods for unpack原创 2015-08-21 11:21:55 · 413 阅读 · 0 评论 -
java常用工具类组件 总结
常用组件json操作: fastjson,jackson,gsonmd5等:commons-codec工具集合:guava数组操作:ArrayUtils(org.apache.commons.lang3.ArrayUtils)集合操作:CollectionUtils(org.apache.commons.collections4.CollectionUtils)commons-lang3原创 2017-01-14 01:15:54 · 2706 阅读 · 0 评论 -
jdk源码阅读一:ArrayList
ArrayList介绍 ArrayList是我们使用的最多的集合类了。特点主要如下:基于数组实现底层存储,容量可以自动扩展。实现List全部接口。允许控对象提供操作数组容量大小的方法。粗略来看和Vector类相同,但是 Vector在 方法上加了同步,所以Vector是线程安全的。size,isEmpty,get,set,iterator和listIterator运行时间为常量。ad原创 2017-01-14 22:59:21 · 480 阅读 · 0 评论 -
jdk源码阅读二:LinkedList
LinkedList介绍LinkedList是基于链表来实现的List。主要特征如下:不仅实现了List接口,还实现了Deque,所以是一个双端队列。允许存储null对象。非线程安全,如果多线程操作它,需要外部枷锁,或者Collections.synchronizedList。返回的iterator是fail-fast,如果iterator创建后,修改了list结构则会抛出异常Concurr原创 2017-01-15 14:37:58 · 447 阅读 · 0 评论 -
JVM 启动参数配置
JVM 启动参数配置export JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -Xmn448m -Xss256K -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m"export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC -XX:+UseParallel原创 2017-01-17 15:55:15 · 1101 阅读 · 1 评论 -
动态代理---动态生成java文件并编译成class文件
刚看到的这个,太生猛了...以前学动态代理还知其然,不知其所以然的...现在算是有点了解了...主要是动态编译这点比较有趣,1 定义一个接口,只有一个方法,sell (为什么要定义这个接口,就不多说了..面向接口编程可以说是必须的)package com.cjb.proxy;/** * 类说明 * 表示商店 * @creator * @email转载 2015-07-13 10:41:35 · 622 阅读 · 0 评论