自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 MongodbTemplate 批量更新或者修改

mongodb

2022-12-20 16:51:31 2475 1

原创 java将时间按月分段

java将时间按月分段 返回分段的数组

2022-06-15 14:57:09 1699 1

原创 @transaction导致切换数据源失效

记录工作时的一个大坑之前遇到一个问题 排查了很久有一个同事在service上加了一个@Transaction注解 然后在druid配置的多数据源。在单个service中使用就没有问题,会自动转换数据源。但是问题来了 在一个加了@Transaction的方法中 导致调用其他不同库的service 数据源切换失效。列如:@Transaction@Servicepublic class ServiceA{ //ServiceA,B,C 对应3个不同的数据源,单独调用方法没有问题 @Aut

2022-05-30 15:40:11 2121 1

原创 java计算gps2点间距离

java计算gps2点间距离<!--用于计算两点之间的距离--> <dependency> <groupId>org.gavaghan</groupId> <artifactId>geodesy</artifactId> <version>1.1.3</version> </dependency>

2022-01-07 14:54:40 492

原创 java WGS-84-火星坐标系-百度坐标系互相转换

/** * 坐标系转换工具类 */public class PositionUtil { public static double pi = 3.1415926535897932384626; public static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; public static double a = 6378245.0; public static double ee = 0.0066934..

2022-01-07 14:50:05 572

原创 python 根据gps经纬度获取2点之间的距离

根据gps经纬度获取2点之间位置from math import radians, cos, sin, asin, sqrtdef geodistance(lng1, lat1, lng2, lat2): lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度 dlon = lng2 - lng1 dlat = lat2 - l

2022-01-07 14:48:37 478

原创 Springboot全局异常配置

主要是@RestControllerAdvice标记该类是一个全局异常捕获类该注解是 @ControllerAdvice + @ResponseBody@ResponseStatus(HttpStatus.OK)表示的是返回值的状态码@ExceptionHandler({UsernameNotFoundException.class})表示出现UsernameNotFoundException.class异常 会进入到这个方法 执行相应逻辑Result是统一返回结果类@RestCont

2021-12-30 19:22:01 706

原创 Feign返回值与接收值是驼峰命名不匹配

Feign返回值与接收值是驼峰命名不匹配以下配置就可以了spring: jackson: jackson: default-property-inclusion: non_null property-naming-strategy: "CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES" # 设置返回json属性格式@Configurationpublic class RestTemplateConfig { @Bean p

2021-12-29 16:57:26 739

原创 kmp算法

不移动next数组的kmp算法leetcode原题28. 实现 strStr()求next数组口诀 一共三步1.初始化2.处理前后缀不相同的情况3.处理前后缀相同的情况4.更新next的值next数组public int[] getNext(String s) { //初始化j int j = 0; //初始化next数组 初始化next0 int[] next = new int[s.length()];

2021-12-23 00:00:27 178

原创 Java响应式编程–handle用法

JAVA响应式编程reactor中如果需要对一个flux中的数据进行提前返回 可以使用handle具体如下:@GetMapping("/a") public Mono<Object> a() throws InterruptedException { long begin = System.currentTimeMillis(); Mono<String> m5 = Mono.just("").map(s -> {

2021-12-16 17:09:00 2275

原创 java字节数组转int

字节数组转int固定占4个字节public static byte[] my_int_to_bb_le(int myInteger){ return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(myInteger).array();}public static int my_bb_to_int_le(byte [] byteBarray){ return ByteBuffer.wrap(byteBarr

2021-12-14 16:59:58 1304

原创 python3 操作mysql

import pandas as pdfrom sqlalchemy import create_engine//engine = create_engine('mysql+pymysql://txz:txz1234@192.168.0.229:30200/txz_account_drds')engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format('root', '123456', '127.0.0.1', '3306', '

2021-11-17 11:56:19 487

原创 Mysql读写分离配置

mysql配置主从复制CentOS7 64位安装MySql教程先检查系统是否装有mysqlrpm -qa | grep mysql下载mysql的repo源wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm报错: -bash: wget: 未找到命令安装插件 yum -y install wget安装mysql-community-release-el7-5.noarch.rpm包sudo r

2021-11-15 14:43:34 2072

原创 openFeign使用get请求自动变成post请求

记一次 项目错误之前项目写的feign是get请求然后发现 请求不了然后发现日志请求自动变成post网上翻阅资料发现 说使用对象类型会把请求自动变成post所以我改post请求就可以了

2021-11-01 17:04:13 1868

原创 java一个目录复制到另一个目录

直接拷贝用long start = System.currentTimeMillis();String source = "D:\\Snipaste-1.16.2-x64";String target = "D:\\Snipaste-1.16.2-x64aaa";Files.walk(Paths.get(source)).forEach(path -> { try { String targetName = path.toString().replace(source

2021-10-11 16:23:53 112

原创 Webflux集成Swagger3

Swagger 2.9.2版本不支持Webflux然后查阅资料Webflux需要使用Swagger3.0我找了好久资料好多配置都没有成功最后一不小心成功了,发现其实并不需要多少配置我们直接上配置gradlecompile group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'maven<dependency> <groupId>io.springfox</gr.

2021-07-30 11:59:24 1714

原创 WebFlux使用ServerHttpRequest出现找不到构造

java.lang.IllegalStateException: No primary or single public constructor found for interface org.springframework.http.server.reactive.ServerHttpRequest - and no default constructor found either报错找不到构造方法其实是你问题中的 stacktrace 显示你实际上运行的是一个 Spring MVC 应用程序,

2021-07-29 19:14:14 3370

原创 WebClient基本使用

WebClient发送请求使用get//使用resteTemplate发送请求 ResponseEntity<String> requestEntity = restTemplate.getForEntity(URI.create(url), String.class); if (requestEntity.getStatusCode() != HttpStatus.OK) { return null; }//使用WeblClie

2021-07-29 10:50:26 372

原创 r2dbc配置多数据源

R2dbc配置多数据源问题根据官网配置r2dbc 连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错 我并没有这样配置将以下内容添加到 pom.xml 文件dependencies元素:<dependencyManagement> <dependencies> <dependency> <groupId>io.r2dbc</groupId> <artifactId&gt

2021-07-28 17:39:32 1833

原创 R2dbc连接操作mysql

R2dbc操作mysql依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!--r2db

2021-07-26 14:38:40 6093 9

原创 RocketMQ笔记

2. RocketMQ快速入门RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。2.1 准备工作2.1.1 下载RocketMQRocketMQ最新版本:4.5.1下载地址2.2.2 环境要求Linux64位系统JDK1.8(64位)源码安装需要安装Maven 3.2.x2.2 安装RocketMQ2.2.1 安装步骤本教程以二进制包方式安装解压安装

2021-07-26 10:35:02 179

原创 zookeeper实现分布式锁

逻辑代码zookeeper集群

2021-07-07 22:10:35 187 1

原创 Nginx负载均衡

Nginx负载均衡负载均衡概述早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢?负载均衡的原理及处理流程系统的扩展可以分为纵向扩展和横向扩展。纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力横向扩展是通过添加机器来满足大型网站服务的处

2021-06-04 16:57:08 838 1

原创 Nginx反向代理

Nginx反向代理Nginx反向代理概述关于正向代理和反向代理,我们在前面的章节已经通过一张图给大家详细的介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。Nginx即可以实现正向代理,也可以实现反向代理。我们先来通过一个小案例演示下Nginx正向代理的简单应用。先提需求:(1)服务端的设置:http { log_format main 'client send request=>clientIp=$remote_addr serve

2021-06-04 16:47:09 220

原创 Nginx静态资源部署

Nginx静态资源部署Nginx静态资源概述上网去搜索访问资源对于我们来说并不陌生,通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面的一个过程。这个时候,我们所请 求的内容就分为两种类型,一类是静态资源、一类是动态资源。静态资源即指在服务器端真实存在并且能直接拿来展示的一些文件,比如常见的html页面、css文件、js文件、图 片、视频等资源;动态资源即指在服务器端真实存在但是要想获取需要经过一定的业务逻辑处理,根据不同的条件展示在页面不同这 一部分

2021-05-29 22:51:10 779

原创 Nginx安装及入门笔记

Nginx环境准备Nginx版本介绍Nginx的官方网站为: http://nginx.org打开源码可以看到如下的页面内容Nginx的官方下载网站为http://nginx.org/en/download.html,当然你也可以之间在首页选中右边的download进入版本下载网页。在下载页面我们会看到如下内容:获取Nginx源码http://nginx.org/download/打开上述网站,就可以查看到Nginx的所有版本,选中自己需要的版本进行下载。下载我们可以直接在windows上

2021-05-27 21:53:01 591

原创 面试官:说说java1.7HashMap头插法导致死循环的问题

HashMap头插法会导致死循环问题大家天天都说Java1.7Hashmap头插法会导致死循环问题 可是大家知道为什么嘛?下面我们来详细讲解一下全过程:首先hashmap头插法导致死循环问题是在多线程并发环境下 2个线程并发扩容而且旧的链表扩容到新的链表的数组是相同的情况下会导致死循环问题。比如要弄清除原理 首先我们需要看懂扩容的过程上源码,标注了主要的序号头插法单个线程进行扩容下面步骤我们都标了序号第一步 首先找到第一个头2.3.4.第二次循环1.2.3.

2021-05-20 15:05:27 4091 7

原创 使用netty手写rpc框架

学完了netty手写了一个rpc项目链接: https://gitee.com/springchuntian1/netty_rpc项目地址跟着视频链接: netty.学完后基本就懂了大概的原理我基于基础代码做了优化整合注册中心 服务端基于自定义注解的自动注册服务...

2021-05-16 14:21:03 313

原创 一. NIO基础--Netty学习之路

Netty学习之路一. NIO基础.二. Netty 入门.三. Netty 进阶.四.Netty 优化与源码.笔记an.一. NIO 基础non-blocking io 非阻塞 IO1. 三大组件1.1 Channel & Bufferchannel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 str

2021-04-30 11:30:38 526

原创 四. Netty 优化与源码

四. 优化与源码1. 优化1.1 扩展序列化算法序列化,反序列化主要用在消息正文的转换上序列化时,需要将 Java 对象变为要传输的数据(可以是 byte[],或 json 等,最终都需要变成 byte[])反序列化时,需要将传入的正文数据还原成 Java 对象,便于处理目前的代码仅支持 Java 自带的序列化,反序列化机制,核心代码如下// 反序列化byte[] body = new byte[bodyLength];byteByf.readBytes(body);ObjectIn

2021-04-30 11:10:26 296

原创 三. Netty 进阶

三. Netty 进阶笔记源于视频:https://www.bilibili.com/video/BV1py4y1E7oA?p=54&spm_id_from=pageDriver1. 粘包与半包1.1 粘包现象服务端代码public class HelloWorldServer { static final Logger log = LoggerFactory.getLogger(HelloWorldServer.class); void start() {

2021-04-30 11:07:59 442

原创 二. Netty 入门

二. Netty 入门二. Netty 入门视频笔记:https://www.bilibili.com/video/BV1py4y1E7oA?p=53&spm_id_from=pageDriver1. 概述1.1 Netty 是什么?Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protoco

2021-04-30 10:53:22 514

原创 Nio中Path类和Files类

jdk7 引入了 Path 和 Paths 类Path 用来表示文件路径Paths 是工具类,用来获取 Path 实例Path source = Paths.get("1.txt"); // 相对路径 使用 user.dir 环境变量来定位 1.txtPath source = Paths.get("d:\\1.txt"); // 绝对路径 代表了 d:\1.txtPath source = Paths.get("d:/1.txt"); // 绝对路径 同样代表了 d:\1.txt

2021-04-27 16:46:44 192

原创 使用Nio进行文件传输

try( FileChannel from = new FileInputStream("date.txt").getChannel(); FileChannel to = new FileOutputStream("to.txt").getChannel(); ){ //效率高,底层会利用操作系统的零拷贝进行优化,最大一次只能传输2g数据 long size= f...

2021-04-27 16:44:14 372

原创 SpringBoot拦截器失效问题excludePathPatterns失效问题

excludePathPatterns失效问题做项目的时候想添加拦截器白名单 不做拦截的项目然后添加registry.addInterceptor(loginInterceptor) .addPathPatterns("/**") .excludePathPatterns("/**/projects/**/") .excludePathPatterns("/doc.html") .excludePathPatterns("/**/*.js

2021-04-27 12:05:31 5418 3

原创 java遍历文件夹,计算文件个数,文件夹个数

java遍历文件夹apijava遍历文件夹api,计算文件夹和文件的个数。 计算文件夹下jar包的个数。直接上代码计算目录下文件夹和文件的个数利用files.walkFileTree(Path,FileVisitor)方法: 遍历文件树第一个参数需要一个path对象 第二个参数我们直接可以new simpleFileVisitor<>()使用匿名内部类的方式里面可以重写我们所需要的参数simpleFileVisitor 里面有4个可以重写的方法所以我们可以在遍历前后进

2021-04-17 19:45:11 795

原创 java比较两个日期时间,比较两个日期大小

比较两个日期时间,比较两个日期大小我们经常会遇到一个问题,比较两个时间的大小,或者需要判断一个时间在另一个时间之前,还要精确到秒,这个时候经常会有一些人卡住。这个时候我们来讲解一下java8的新日期时间类。LocalDateTime可以很好的解决日期比较大小的问题,而且是线程安全的,精确到秒不说废话直接上代码public boolean verifyDate(Date begin,Date end){ ZoneId zoneId = ZoneId.systemDefault();

2021-04-16 18:25:53 7180 1

原创 java线程池的深入解析

线程池如何创建线程池JDK中提供了创建线程池的类,大家首先想到的一定是Executors类,没错,可以通过Executors类来创建线程池,但是不推荐(原因后面会分析)。Executors类只是个静态工厂,提供创建线程池的几个静态方法(内部屏蔽了线程池参数配置细节),而真正的线程池类是ThreadPoolExecutor。ThreadPoolExecutor构造方法如下:参数解释corePoolSize:核心线程数。如果等于0,则任务执行完后,没有任务请求进入时销毁线程池中的线程。如果大于0

2021-04-12 11:13:35 108

原创 Git基本命令

giee使用ssh生成公钥私钥ssh-keygen -t rsa一直回车即可会默认目录.ssh目录生成一个默认的id_rsa文件和 id_rsa.pub

2021-04-11 11:54:46 123

原创 NIO深入剖析

第四章 JAVA NIO深入剖析在讲解利用NIO实现通信架构之前,我们需要先来了解一下NIO的基本特点和使用。4.1 Java NIO 基本介绍Java NIO(New IO)也有人称之为 java non-blocking IO是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。NIO可以理解为非阻塞IO,传

2021-02-28 14:49:53 1459

空空如也

空空如也

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

TA关注的人

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