- 博客(28)
- 收藏
- 关注
原创 GItLab CI/CD Runner安装注册配置
Runner配置。所以要实现CI/CD,两个关键步骤:CI/CD流程(.gitlab.yml脚本)、Runner安装。今天介绍Runner的安装及注册。
2023-03-07 16:27:54
517
原创 ElasticSearch 索引名根据yml文件配置通过动态注解注入 EL表达式
Java中的ES文档实体映射是通过注解 @Document 来实现,@Document 注解有两个参数:indexName 和 type。indexName 用于指定索引名称。indexName是我们在编码的时候写死的,有个需求希望通过yml配置文档名,在不同的服务在不改变代码的前提下动态配置索引名称。
2023-01-11 17:32:29
404
原创 HttpURLConnection绕过SSL验证,信任所有证书的工具类
这样的错误,那是因为环境中没有证书校验,我们可以在连接中设置绕过SSL校验来解决这个问题。 发起https请求时经常会出现。
2023-01-10 14:25:26
1348
原创 使用logstash实现mysql到ES的数据迁移
es在作为数据检索的能力是业界公认的,当我么的服务数据体量增大后,使用mysql存储大文本、或者文本检索就不够用了,那就上es,那么就涉及到旧数据迁移的问题,本文介绍es提供的logstash实现数据迁移。版本选择 (logstash、es、kibana版本要一致)Docker安装2、配置文件拷贝出来3、授予权限3、安装mysql-connector-java-8.0.19.jar4、配置映射关系 (重点)主要是这个配置,sql语句获取数据源我这里直接原数据迁移,所以只配置了input ou
2022-12-30 11:04:15
691
原创 一文掌握并发编程工具CompletableFuture
但是,这些方法不足之处在于,想要获取结果,我们只能通过轮询或者阻塞的方式。参考https//colobu.com/2016/02/29/Java-CompletableFuture/CompletableFuture登场了,包含50多个方法,帮助我们实现Future的各种编排。Future是Java5添加的类,用来描述一个异步计算的结果。传入T返回U,相当于做出对象的转换。传入T、异常E,相当于做出对象消费。完成时回调,返回转换后对象。完成时回调,返回原对象。消费生成的T无返回。...
2022-07-25 20:29:35
170
原创 Mybatis Plus 批量插入方法效率低问题优化方案 BatchExcutor
1、问题描述项目用的是Mybatis Plus框架操作数据库,在使用batchSave批量插入方法的时候发现效率极低,插入2w数据花了6分钟,太恐怖了。看了源码发现,项目的批量插入方法调用的是Mybatis Plus的BatchExcutor,用这个本意是将多次更新sql语句集合为一条更新语句,复用同一个sql连接更新数据。但是打印sql语句发现,实际上仍然是一条一条插入的,只不过是复用同一个prepareStatement而已。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i
2022-01-25 20:26:02
3492
原创 Spring Cloud Gateway 设置全局接口访问日志
Spring Cloud Gateway 设置全局接口访问日志虽然网关只做转发,但是对于每个转发的请求,我们都希望能够在日志中打印出请求的信息,网上版本很多,踩了很多坑,目前没找到完美的解决方案,最后我这个应该是大成版。希望对大家有用。先贴代码,再说遇到什么坑吧。/** * @author chenzhangx * @date 2021/11/30 15:09 */@Componentpublic class AccessFilter extends AbstractFilter imple
2021-12-03 14:42:52
3778
6
原创 SpringBoot集成支付宝异步通知验签失败问题解决!
在做集成支付的时候,明明支付成功了,但是异步通知回调的时候失败网上找了好久问题总结一下1: 说是支付密钥的问题,要用支付宝公钥我是用的支付宝公钥结果还是错误2: 最后我找了支付宝开发文档,里面有一个信息,说是订单的subject和body不能是乱码,否则也会失败支付宝开发问题文档确实是这样,希望对你们有用...
2021-05-26 15:03:24
632
1
原创 MybatisPlus分页查询出现的问题
今天使用MybatisPlus的时候出现报错的报错信息,花了好久才发现的问题,还是没研究透这个框架的原因,官方文档也没写清楚报错信息:"nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘brandId’ not found. Available parameters are [queryData, page, param1, param2]我的mapper是这样写的但是我在XML中的参数却没有写清楚,
2021-05-11 00:56:21
1248
原创 JAVA开发工程师 校招面经
在这里分享一下我的面经吧Q:Redis 基本数据类型五个基础数据类型StringHashListSetZsetQ:hashMap的底层 怎么计算哈希HashMap底层原理Q:LOCK和Synchronized区别 性能区别 lock底层原理synchronized 和 lock 的区别1.synchronized是java的一个修饰符 lock是一个类2.synchronized 可重入锁 不可中断 非公平锁 ;lock 可重入锁 可中断 可以设置公平或非公平锁3..
2021-04-16 23:43:09
345
原创 javaWeb 之基础理解
javaWeb基本概念静态WebHtml Css提供给人看的数据始终不会发生变化存在的缺点:WEB页面无法更新,所有用户看到的都是同一个页面轮播图 点击特效 :伪特效JavaScript无法和数据库交互数据无法持久化动态Web淘宝 几乎是所有的网站提供给人看的数据始终会发生变化,每个人在不同的时间,不同的时间地点看到的内容各不相同技术栈 Severlet、JSP、ASP\PHP[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im
2021-04-16 16:35:04
165
原创 Linux基础语法
LInuxlinux一切皆文件 读写 (权限)入门概述我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一
2021-04-16 16:34:16
389
原创 MYSQL基础语法 快速掌握sql语句
MYSQL1、 操作数据库命令行操作数据库创建数据库 : create database [if not exists] 数据库名;删除数据库 : drop database [if exists] 数据库名;查看数据库 : show databases;使用数据库 : use 数据库名;创建数据表属于DDL的一种,语法 :create table [if not exists] `表名`( '字段名1' 列类型 [属性][索引][注释], '字段名2' 列类型 [属
2021-04-16 16:33:11
321
原创 VUE 基础用法 快速上手
VUEVue 的核心库只关注视图层,方便与第三方库或既有项目整合。HTML + CSS + JS : 视图 : 给用户看,刷新后台给的数据网络通信 : axios页面跳转 : vue-router状态管理:vuexVue-UI : ICE , Element UI一、前端核心分析1. VUE 概述Vue (读音/vju/, 类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易
2021-04-16 16:31:51
358
原创 Mybatis-理解
Mybatis第一个mybatis为什么需要MybatisMybatis就是帮助程序猿将数据存入数据库中 , 和从数据库中取数据 .传统的jdbc操作 , 有很多重复代码块 .比如 : 数据取出时的封装 , 数据库的建立连接等等… , 通过框架可以减少重复代码,提高开发效率 .MyBatis 是一个半自动化的ORM框架 (Object Relationship Mapping) -->对象关系映射所有的事情,不用Mybatis依旧可以做到,只是用了它,所有实现会更加简单!技
2021-04-16 16:30:28
288
原创 SpringMVC
回顾MVC1.1、什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。**Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Da
2021-04-16 16:29:52
117
原创 剑指Offer题解过程
剑指Offer题1.重建二叉树示例1输入[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值{1,2,5,3,4,6,7}前置知识:二叉树的前序遍历:根左右二叉树的中序遍历:左根右二叉树的的后序遍历:左右根解题思路首先我们肯定是要通过递归来实现重建的递归就是从大问题转化为小问题的过程根据二叉树的特性,二叉树的左右子树也是也是一颗二叉树(所以他是最适合递归的数据结构 不管是遍历还是建立)所以我们现在要来分解了 根据前序遍历我们知道数组第一位都是根节点
2021-04-16 16:29:19
339
原创 Spring理解
Spring概述简介Spring : 春天 —>给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术官网 : http://spri
2021-04-16 16:28:48
398
原创 JAVA设计模式 工厂模式 单例模式 动态代理模式
设计模式工厂模式Spring IOC简单工厂模式public class FactoryDemo { // 消费者 @Test public void test() { Car bmw = simpleFactory.creatCar("BMW"); bmw.DiDi(); Car benz = simpleFactory.creatCar("Benz"); benz.DiDi(); }}// 产品接口interface Car { pub
2021-04-16 16:27:37
155
原创 毕业之后年年回顾 ---应届毕业生
提要前段时间,看了一位博主写的他毕业之后成为程序员的年回顾,决定也像他一样每年写下一篇博客,记录今年的计划以及收获,希望给自己,也给有机会看到这篇博客的人,分享一下自己的成长过程。正如标题所示,今年我是应届毕业生,也是被找工作一直困扰,压力真的挺大的。介绍一下的我情况吧,我的学校是一所普通一本,但很尴尬的是在一本里是不错,但又不是211,就有点比上不足,比下有余的感觉。大学回顾回顾一下大学四年,也和我的学校境遇一样,如果说浑浑噩噩,混了大学四年,也不至于。但是,很优秀,参加各种比赛、社会实践,专.
2021-03-20 13:37:28
214
2
原创 Java ArrayList HashMap 底层分析及扩容方法
常量:private static final int DEFAULT_CAPACITY = 10;//默认容量,即数组长度为10private static final Object[] EMPTY_ELEMENTDATA = {};private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};//初始化时,默认使用这个空数组transient Object[] elementData; // non-private to
2021-03-17 23:17:30
235
原创 Spring事务理解
Spring的事务一、事务四大特性:ACID1、原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全失败。2、一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。例如:账户A有1200块钱,账户B有900块钱,一共是2100块钱,A向B转账300块钱,A有900,B有1200,A+B还是2100。这就是一致性。3、隔离性(Isolation
2021-03-16 23:12:20
137
原创 NIO理解
NIONIO是什么? NIO的全称是New I/O,与之相对应的是Java中传统的BIO 同步阻塞式IO。NIO和BIOBIO:传统的同步阻塞阻塞即当用户线程发出IO请求后,内核会去查看数据是否已经就绪,若未就绪,则用户线程会处于阻塞状态(让出CPU),当数据就绪后,内核会将数据复制到用户线程,并把结果返回给用户线程,同时结束用户线程的阻塞同步体现在用户线程需要等待数据就绪后才能向后执行(后面的执行依赖于前面的结果)。服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一
2021-03-16 23:11:49
421
1
原创 JVM理解与解析
JVM1、jvm的位置2、JVM的体系结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9S332KPg-1615907451033)(image-20201130205951151.png)]https://www.cnblogs.com/kukri/p/9109639.htmlhttps://www.cnblogs.com/gaopengfirst/p/10037887.html线程之间的通信机制有两种:共享内存和消息传递。堆是Java 虚拟机所管理的
2021-03-16 23:11:13
131
原创 JUC并发编程
JUC并发编程进程和线程并发和并行并发(多个线程操作同一个资源)CPU一核 模拟出来多条线程、并行CPU多核,多个线程可以同时执行public class test1 { public static void main(String[] args) { //打印CPU核心数 System.out.println(Runtime.getRuntime().availableProcessors()); }}线程状态 (生命周期)6
2021-03-16 23:10:29
226
原创 JAVA基础大全、面对面试够了
JAVA基础的类1.字符串相关的类String类1.被final修饰的不可变的字符序列 不可被继承2.内部是一个final []value 的字符数组,存储字符串3.实现了 Serializable接口(实现对象序列化)comparable接口实现对象的比较4.两种创建方式:1、 String通过字面量的方式进行赋值 String str = "a"创建时相当于在常量池中开辟一个内存空间存储字符串2、通过new实例化对象的方式,存储在堆中5.因为String的final,所以每次字符串改变的
2021-03-16 23:00:57
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人