- 博客(63)
- 收藏
- 关注
原创 Feign接口调用添加请求头信息
文章目录1.方式一: @RequestHeader注解添加参数到请求头2.方式二: 实现RequestInterceptor接口: feign全局设置3.方式三: aop切面3.1.注解3.2.切面3.3.适配类3.4.接口1.方式一: @RequestHeader注解添加参数到请求头//app-server-name:要调用的服务名//appcontext:要调用的服务的上下文@FeignClient(value="${app.feign.url:app-server-name/appcontex
2021-04-15 19:58:24
15608
9
原创 java获取当前服务器的IP地址
文章目录1.方法1.方法public static void main(String[] args) { String ip=""; InetAddress inetAddress = null; try { Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); whil
2021-04-12 20:27:54
2180
原创 JVM GC
文章目录1.什么是垃圾2.如何定位垃圾3.垃圾回收算法3.垃圾回收器1.什么是垃圾没有被任何地方引用的对象或者数据就是垃圾。2.如何定位垃圾引用计数: 当这个对象被引用时,计数一次,当计数为0时,这个对象就是垃圾。无法解决循环引用的问题,会造成内存泄漏可达性分析算法:从根节点(gc root)出发,无法找到一条路径到这个对象,这个对象就是垃圾。 a) 虚拟机栈中引用的对象(栈帧中的本地变量表);b) 方法区中类静态属性引用的对象;c) 方法区中常量引用的对象;d) 本地方法栈中JN
2021-03-16 22:07:54
335
原创 Mysql知识点总结2
文章目录1.回表2.索引覆盖3.ICP索引下推4.最左匹配5.MRR(Multi-Range Read Optimization)6.FIC(**fast index creation**)7.注意事项8.mysql 的server架构9.存储引擎1.回表#先根据非主键索引(二级索引、辅助索引)找到主键,再根据主键找到这条数据。select * from table where name='xxx'; --在name字段上建索引2.索引覆盖#先根据非主键索引(二级索引、辅助索引)找到主键,直接返
2021-03-16 21:16:45
329
原创 java解析json文件
文章目录1.文件传输解析2.本地文件路径解析2.1.依赖2.2.json路径及示例2.2.3.代码实现1.文件传输解析@ResponseBody@PostMapping(value = "importJson")public String importJson(@RequestParam(value = "file") MultipartFile file) throws Exception { byte[] fileBytes = file.getBytes(); String f
2021-03-15 20:47:33
1683
原创 java解析html字符串
文章目录1.依赖2.解析1.依赖<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version></dependency>2.解析public static void main(String[] args) { String htm
2021-03-01 17:35:18
2163
原创 Linux——常用命令
文章目录1.查找文件、目录2.查找端口3.根据pid查找启动路径4.查看linux硬件信息5.查看服务器各进程情况6.查看服务器内存使用情况7.查看服务器硬盘使用情况8.其他1.查找文件、目录find / -type d -name "*rocketmq*" find / -type f -name "*.txt" whereis nginx.conf2.查找端口lsof -i:pid3.根据pid查找启动路径pwdx pid4.查看linux硬件信息#cpucat /pro
2021-02-03 15:23:40
229
原创 Redis——通用命令
文章目录1.查看版本号 (进入到redis的bin目录)2.认证 (redis-cli客户端登录后)3.数据库切换4.查看当前库中key的数量:5.清除数据库:6.批量删除匹配的key7.事务8.设置密码:9.重写配置文件10.压测10.1.测试结果10.2.可选参数11.数据结构1.查看版本号 (进入到redis的bin目录)1.redis-server --verion2.redis-server -v#pwd为密码3.redis-cli -a pwd info # red
2021-01-23 16:22:36
179
1
原创 Redis————基准测试
文章目录1. 压测命令2.测试结果3.可选参数1. 压测命令redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 10000 -t set,sadd2.测试结果====== SET ====== 10000 requests completed in 0.09 seconds 100 parallel clients 3 bytes payload keep alive: 199.14% <= 1 milliseconds100.
2021-01-22 21:43:04
258
原创 PostgrelSQL知识点——常用命令
文章目录1.自增序列(主键)2.序列3.pg运算符4.查看所有的数据库5.查看当前库下所有的schema (namespace)6.查看某个schema下所有的表7.查看某张表的所有字段8.从某张表里查询数据并批量插入另外一张表9.动态更新一张表的某个字段(用另外一张表的数据)10.其他1.自增序列(主键)-- ddlid bigserial NOT NULL,CONSTRAINT apply_info_pkey PRIMARY KEY (id)-- 备注:表COMMENT ON TABLE
2021-01-05 20:38:37
1055
原创 Redis——布隆过滤器(Bloom filter)
文章目录1.概念2.guava实现2.1.依赖2.2.初始化布隆过滤器2.3.布隆过滤器2.4.添加元素或者判断是否存在3.Redisson实现3.1.依赖3.2.注入或测试1.概念 布隆过滤器是一个高空间利用率的概率性数据结构,主要目的是节省内存空间以及判断一个元素是否存在于一个集合中(存在误判的情况),可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够
2021-01-05 20:26:30
649
1
原创 SAX解析xml文件
文章目录1.xml文件2.解析2.1.实体类2.2.handler2.3.解析工具3.测试3.1.main测试3.2.接口测试1.xml文件<?xml version="1.0" encoding="UTF-8"?><xml> <tNode code="t1" name="动物"> <tNode code="n1" name="狗"></tNode> <tNode code="n2" name="
2020-12-18 11:36:30
203
原创 Redis————数据结构(String、hash、list、set、zset、bitmap、geo、hyperloglog)
文章目录命令命令命令描述使用场景keys *查看所有key;支持模糊匹配set key value [expiration EX seconds | PX milliseconds] [NX | XX]设置key的值:EX seconds – 设置键key的过期时间,单位时秒PX milliseconds – 设置键key的过期时间,单位时毫秒NX – 只有键key不存在的时候才会设置key的值XX – 只有键key存在的时候才会设置key的值get key获
2020-12-16 22:33:38
329
原创 Redis————简介
文章目录1.概念2.应用场景3.数据结构4.持久化5.架构1.概念 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(se
2020-12-15 22:27:13
352
1
原创 freemarker模板生成pdf文件
文章目录1.pom依赖2.ftl模板以及宋体文件2.1.文件路径2.2.ftl文件模板(test.ftl)3.controller生成pdf文件1.pom依赖<!--freemarker--><dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.27-incu
2020-12-14 18:41:49
1835
原创 Webservice——CXF 远程服务发布与调用
文章目录1.pom2.接口发布2.1.接口2.2.接口实现2.3.主启动类注入3.服务调用1.pom<dependency> <groupId>org.apache.cxf</groupId> <artifactId>apache-cxf</artifactId> <version>3.1.6</version></dependency>2.接口发布2.1.接口package
2020-12-02 14:38:44
253
原创 JDK8 stream流操作
文章目录关键字1.初始化数据2.迭代:forEach3.条件过滤:filter4.排序:升序、降序、多属性排序:sorted、comparing、thenComparing5.去重:年龄:distinct、自定义6.取集合的前几个元素:limit7.跳过集合的前几个元素:skip8.处理对象中的数据:map9.获取用户名称并用逗号分隔转成字符串:map、joining10.判断所有用户年龄是否都大于14:allMatch11.判断是否存在36岁年龄的用户:anyMatch12.判断是否不存在36岁年龄的用户
2020-11-26 15:38:16
422
原创 HttpServletRequestWrapper使用:解决HttpServletRequest只能读取一次流后无法获取的问题,封装request.getInputStream()
文章目录1.背景2.过滤器3.RequestWrapper4.业务处理(获取请求参数并且加密)1.背景 在过滤器中获取请求的参数信息,并对参数信息进行校验。2.过滤器package com.qin.filter;import com.qin.common.util.RequestWrapper;import org.springframework.context.annotation.Configuration;import org.springframework.core.annotat
2020-11-16 20:49:42
1458
原创 springboot 实现定时任务(Schedule)
文章目录1.主启动类(@EnableScheduling)2.定时任务实现方式1.注解(@Scheduled)2.接口(实现SchedulingConfigurer)3.多线程(@Async:可以标注在类和方法上)3.cron表达式1.表格2.特殊字符说明3.示例1.主启动类(@EnableScheduling)@SpringBootApplication@EnableScheduling // 开启定时任务功能@EnableAsync // 开启多线程定时任务public class Appli
2020-10-20 16:02:31
725
原创 java中volatile关键字
文章目录1.volatile关键字的作用2.volatile可见性3.指令重排序1.volatile关键字的作用保证线程之间的可见性。禁止指令重排序备注:volatile并非原子性,因此并不能保证线程安全2.volatile可见性线程之间的可见性: 一个线程修改的状态对另一个线程是可见的。用volatile修饰的变量,就会具有可见性。当一个线程修改了这个变量的值,volatile 保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新。测试说明: 在下述程序中,当flag
2020-10-15 11:37:26
112
原创 web获取当前HttpServletRequest请求以及请求的ip
这里写目录标题1.获取当前请求对象2.获取当前session3.获取当前请求的ippackage com.qin.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.sprin
2020-10-14 15:23:31
519
原创 springboot整合AOP
文章目录1.AOP使用场景2.pom依赖3.自定义注解3.AOP切面3.1.execution表达式3.2.通知4.执行顺序测试4.1.测试类4.2.测试结果1.AOP使用场景日志记录权限控制缓存处理监控事务处理…2.pom依赖<!--aop--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s
2020-10-13 21:26:17
208
原创 java自定义注解以及注解说明
文章目录1.自定义注解2.@Target2.1.ElementType3.@Retention3.1.RetentionPolicy4.@Documented5.@Inherited1.自定义注解package com.qin.annotation;import java.lang.annotation.*;@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_T
2020-10-13 13:37:49
159
原创 spring-boot自定义注解,解析自定义注解的属性值,配置文件的参数值
文章目录1.配置文件2.注解3.切面AOP4.测试1.配置文件test.key=testValue2.注解package com.qin.annotation;import java.lang.annotation.*;@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)
2020-10-12 19:31:59
1996
3
原创 spring-cloud———feign多文件上传、文件下载
文章目录1.feign配置类2.多文件上传3.文件下载1.feign配置类package com.qin.common.util;import feign.codec.Encoder;import org.springframework.beans.factory.ObjectFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconf
2020-09-30 14:44:24
424
3
原创 Zookeeper学习————应用场景
文章目录Curator连接zookeeper1.配置中心2.分布式id3.分布式锁1.1.可重入排它锁1.2.不可重入排它锁1.3.多个对象加锁1.4.读写锁1.4.1.读锁1.4.2.写锁应用场景:配置中心分布式id分布式锁Curator连接zookeeper 请查看:https://blog.csdn.net/qq_42513284/article/details/1075003161.配置中心将配置信息配置到zookeeper读取配置信息,存入本地变量,注册watcher监听
2020-07-23 23:11:34
126
原创 Zookeeper学习————Curator的API
文章目录1.连接2.创建节点1.1.同步创建1.2.异步创建3.删除节点1.1.同步删除1.2.异步删除1.连接package com.tt.tt.zookeeper.config;import org.apache.curator.RetryPolicy;import org.apache.curator.framework.CuratorFramework;import org.apache.curator.framework.CuratorFrameworkFactory;import
2020-07-21 22:20:28
244
原创 Zookeeper学习————Watcher机制(监听器注册以及事件监听)
文章目录1.watcher(监听器)1.1.watcher组成1.2.watcher特性1.3.watcher结构1.3.1.KeeperState(通知状态)1.3.2.EventType(事件类型)1.3.3.方法以及可被监控的时事件类型2.watcher注册1.1.创建连接注册1.2.判断节点是否存在1.3.获取节点数据1.4.获取子节点列表1.watcher(监听器) Zookeeper提供了分布式数据的发布/订阅功能,可以让客户端订阅某个节点,当节点发生变化(比如创建、修改、删除、数据获取、子
2020-07-10 22:36:08
1380
原创 Zookeeper学习————java API(节点创建、授权、修改、删除、获取节点(子节点)数据、判断节点是否存在)
文章目录1.java API1.1.创建连接1.2.新增节点1.2.1.同步创建1.2.2.异步创建1.2.2.只读权限(acl)1.2.3.world授权模式1.2.4.ip授权模式1.2.5.auth授权模式1.2.6.auth授权模式21.2.7.digest授权模式1.3.修改节点1.3.1.同步修改1.3.2.异步修改1.4.删除节点1.4.1.同步删除1.4.2.异步删除1.5.获取节点数据1.5.1.同步获取1.5.2.异步获取1.6.获取子节点数据1.6.1.同步获取1.6.2.异步获取1.
2020-07-08 22:34:36
2086
原创 Zookeeper学习
Zookeeper文章目录Zookeeper1.简介2.应用场景3.客户端命令3.1.概览3.2.示例3.3.acl(access control list)权限控制3.3.1.权限模式(scheme):即采用何种方式授权3.3.2.授权对象(id):即给谁授权3.3.3.授权(perssion):即授予何种权限1.简介 官网:https://zookeeper.apache.org ZooKeeper是一项集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以某种
2020-07-06 23:20:26
308
原创 rocketMq——消息发送与消息消费
总结文章目录总结一.广播模式1.producer2.consumer一.广播模式1.producer/** * @Author: wangzb * @Date: 2020/06/30 * @Desciption: 发送消息 * @Params: */public class RocketMqTest { public static void main(String[] args) { //1.消息提供者 传入参数:生产者组名 Defa
2020-06-30 21:49:27
455
原创 java内存溢出(OutOfMemoryError)————dump文件以及内存分析
java内存溢出(OutOfMemoryError)————dump文件以及内存分析文章目录java内存溢出(OutOfMemoryError)————dump文件以及内存分析1.dump内存快照1.1.测试环境(程序启动)1.2.生产环境(程序运行时)2.分析快照文件3.测试3.1.程序(运行时)3.2.jmap生成内存快照文件3.3.MAT分析3.3.1.下载3.3.2.使用当程序出现以下错误时:java.lang.OutOfMemoryError: Java heap spacejava.l
2020-06-21 21:16:46
4741
原创 springboot整合curator实现分布式锁模拟抢购场景
文章目录1.环境说明2.maven依赖3.代码实现3.1.Redis3.1.1.配置文件3.1.2.redisTemplate配置3.2.Curator3.1.1.配置文件3.1.2.Curator配置3.2.测试1.环境说明序号名称版本说明1springboot2.2.1.RELEASE2curator2.8.0zookeeper的封装框架3redis5.0.9下载路径: https://github.com/tporadowski/redis/r
2020-06-20 23:20:53
646
原创 Mysql知识点总结
文章目录1.case...when2.格式化日期2.1.日期格式化成时间字符串2.2.字符串格式化成日期3.同一表中某个字段的比较4.将某个字段的值合并排序并以/分隔 不写默认以“,”分隔5.返回年份和该年第几个星期6.连接字符串7.字符串编码8.行号递增(自定义变量)9.将某个字段的值转换成字符串10.字符串截取11.字符串反转1.case…whenSELECT JURISDICTIONAL_DEPT dept, sum(case DATE_FORM
2020-06-17 20:40:37
176
原创 线程池——ThreadPoolExecutor
线程池——ThreadPoolExecutor文章目录线程池——ThreadPoolExecutor1.构造方法1.1.参数说明1.2.workQueue(线程等待队列)1.3.handler(拒绝策略)2.线程提交2.1.excute()2.2.submit()1.构造方法//ThreadPoolExecutor共有四个构造函数,取参数最多的为示例ThreadPoolExecutor pool=new ThreadPoolExecutor( 2
2020-06-10 23:27:58
204
原创 java设计模式(一)———单例模式
java设计模式(一)———单例模式文章目录java设计模式(一)———单例模式优缺点1.懒汉式单例模式(线程不安全,不推荐使用)2.饿汉式单例模式(安全)3.同步锁单例模式(安全)4.双重校验锁机制单例模式(安全)5.无锁静态内部类单例模式(安全)6.枚举单例模式(安全)优缺点类型优点缺点适用场景懒汉式实例只有需要使用的时候才会去创建,可以提高应用的启动速度。线程不安全,如果多个线程去调用获取实例的方法,可能会生成多个实例。实例对象功能复杂,占用内存较大,对应用的启动速
2020-05-26 21:00:09
141
原创 MyBatis+PostgreSQL处理pg中json及_varchar字段类型数据(插入及查询)
MyBatis+PostgreSQL postgrel中存在json和数组类型的字段,而mybatis原生并不支持这种类型(即jdbcType不存在JSON或者数组类型),如果想要将json或者数组格式的数据插入到pg数据库,那么mybatis提供了BaseTypeHandler已供开发者自己扩展,开发者需要根据自己的业务实现(implements)或者继承(extends)BaseTypeHandler。 下面将展示把List<String> 和 JSONObject类型(java)的数据
2020-05-25 15:04:33
5273
原创 Elasticsearch学习(十三)————Java聚合查询文档(Aggregations Query API)
Aggregations Query API1.package com.qin.common.util.elasticsearch.query;import org.apache.http.HttpHost;import org.elasticsearch.action.search.SearchRequest;import org.elasticsearch.action.searc...
2019-07-30 21:45:12
636
原创 redis分布式锁的实现
redis分布式锁的实现1.依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.代码...
2019-07-29 22:16:06
198
原创 Elasticsearch学习(十二)————Java查询文档(Query API)
Query API————(查询文档)1.query ——— matchAll(查询所有) /** * @param : client * @description : 查询文档————matchAll */ private static void searchDocumentByMatchAll(RestHigh...
2019-07-24 21:50:04
865
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人