- 博客(85)
- 收藏
- 关注
原创 docker部署canal 并监听mysql
日志分别是在 /opt/canal/logs目录里面 ,或者也可以进容器里面去看,docker exec -it canal bash。上面的部署canal文章里面的canal路径映射是有问题的,需要参考下面的路径映射,需要开启mysql的binlong,和创建好用户等。
2024-07-14 18:45:04
567
1
原创 关于CompletableFuture的自己理解和使用
/ //supplyAsync()可以定义返回值,现在使用的runAsync()由于传入的是Rnnable接口,是没有返回值的。//目前比如来说一个新的异步任务,需要使用supplyAsyncTest的返回值时和异常时,可以使用whenComplete方法。// thenAcceptBoth,有入参,一个参数是新的异步任务,第二个参数是两个异步任务的执行结果,无返回值。// thenComebine, 有入参,一个参数是新的异步任务,第二个参数是两个异步任务的执行结果,有返回值。
2024-05-20 00:47:33
436
原创 2024-04-10
目前已经到了传说中的30岁年龄危机,最近的心态变得很敏感,不知道方向在哪里,心里空唠唠的,对所有的事物都失去了兴趣,感觉自己一事无成,真就感觉活着没什么意思了,常常想,人生的意义是什么,人为什么而活。所以需要降低自己的欲望,当欲望和自己的能力匹配的时候,才不有焦虑的产生。认清自己,明白有的事情并不是自己能做的,所以不要有太大的期望。今日复盘:今天是整体上进入外包工作的第3周,工作内容还是那些,业务的理解依然很有限,但好在已经找到人可以问,而且别人也愿意给我说,内心非常的开心。希望自己能被善良以待。
2024-04-10 19:56:58
133
原创 2024-03-03
02-29:去了一家线下面试的公司:现场做题:如果将一个数组尽量的平均分成n份。我现场说的是把数组转成list,基于list去做,结果直接说,这道题做的不合格,导致面试没通过。看了rocketmq和kafka相关的东西,因为这两个是我在简历上写的,知道了他们的区别。02-26:有一个外企的外包面试,是猎头推荐的,但是最后没过,因为学历的问题。03-01:面了一家公司,问题:分布式事务的问题。02-27:面了一家小公司,03.04约第二面,感觉希望不大。上周基本上每天都有面试,
2024-03-03 18:40:17
417
原创 2024-02-29
缺点线上环境时,会导致很慢,可以jvm启动命令来自动dump,-XX:heapdumpOutOfMemoryError。从1月16号被裁员,到现在已经有快一个月的时间了,期间回家过年花了15天的时间,其余时间也是在玩,基本很少写代码。02-28 面试了一家公司,这家公司主要是做数据库里面的数据迁移的开发的。问的问题:如何dump堆快照?
2024-03-03 18:11:42
350
原创 SpringBoot自带的tomcat的最大连接数和最大的并发数
tomcat里面的线程池流程是这样的:先核心数量,然后最大数量,最后是队列,和jdk的线程池是不同的。详解tomcat的连接数与线程池 - 掘金 (juejin.cn)这时候所有的线程池的配置全部变成了和Asyc注解使用的线程池,
2024-02-25 18:28:46
2085
原创 JNDI以及利用JNDI进行漏洞攻击
JNDI是java提供的命名和目录服务。命名服务命名服务是一种简单的键值对绑定,可以通过键名检索值,RMI就是典型的命名服务目录服务目录服务是命名服务的拓展。它与命名服务的区别在于它可以通过对象属性来检索对象,这么说可能不太好理解,我们举个例子:比如你要在某个学校里里找某个人,那么会通过:年级->班级->姓名这种方式来查找,年级、班级、姓名这些就是某个人的属性,这种层级关系就很像目录关系。
2024-01-30 14:43:41
609
1
原创 2024-01-26
阿里云也有KMS功能 https://help.aliyun.com/zh/kms/product-overview/what-is-key-management-service-1。概念:SpEL是Spring Expression Language 即Spring表达式语言。user.setAddress("长沙");了解kms 密钥管理相关的系统。
2024-01-26 16:15:22
375
原创 2021-01-25
2.2 在redis的配置文件中,主要是RedisMessageListenerContainer这个bean中,调用container.addMessageListener()指定一个messageListener,也就是上面自定义的那个,然后再传一个topic,如图。2.消息发送者:使用springboot自带的redistemplate .convertAndSend()方法,带两个参数,一个是topic,一个是消息内容。把这个类作为构造参数传给futuretask,futuretask也指定泛型。
2024-01-25 15:45:37
377
原创 2024-01-24
jmap--可以用来查看堆的内存分布情况和使用情况,格式:jmap -heap PID 也可以用来生成堆的快照文件 命令:jmap -dump:live,format=b,file=/xx/xx/a.hprof。:今天去线下面了一家小公司的java开发(中华青云),主要问了和密码机相关的一些东西,还问了springboot相关的一些基本东西。jstack--用来生成线程的快照,用来排除死锁,线程阻塞,死循环的问题 jstack PID即可。:整理了一下:毕竟简历上写了这些东西。
2024-01-24 16:31:04
377
原创 2024-01-19
早上10点进行了外包软件的二面,问了:1,redis的缓存穿透,缓存血崩 2,介绍一下项目 3:问了下netty相关 回答都一般。1,继续优化简历,要在项目中突出亮点和难点,面试的时候要突出项目,而不是单纯的背八股文。然后下午的2点去了闵行区图书馆,在图书馆待了一下午,大概把之前的面试资料看完了。一句话:机会是给有准备的人的,活在过去,是没有意义的。2,重新准备好自我介绍相关话术。
2024-01-19 22:53:20
408
原创 2024-01-18
线程私有的是栈和程序计数器。方法区存放的是类的定义信息,以及类里面的属性,方法等。毕竟是外包,自己只是练了个手,没有过多的期望。明天通知银行的二面,自己并没有报太多希望,我还是希望能进一个甲方公司。(年轻代占有1/3,老年代占2/3),因为很多对象都是朝生夕死,存活时间很短。感觉这些东西对于初级开发者,应该会问的多点,像我这种,有4-5年的,应该会偏向项目。我的回答是:遇到过随机数生成有时快,有时慢的问题。2.说一个你项目中你做的比较复杂的功能的难点。我的回答:之前做案件流转的时候,用的工作流。
2024-01-18 19:57:02
414
原创 2024-01-17复盘和总结
今天早上9点出发,骑电动车去了闵行区的图书馆,在图书馆里优化了简历,把word版的简历变成了pdf版的简历,问了问公司关于我赔偿金相关的事情。3.明天需要8.30起床,然后吃早饭,9点30正式开始学习,12点吃饭。5.6.30吃东西,不一定于要吃饭,但是晚上需要出去走一走。6.做运动,比如瑜伽,跑步,别废了。4.13点下午开始学习,6点结束。初次之外,什么也没做。
2024-01-17 21:13:06
396
原创 2024-01-17
由于和小领导有过节,导致我在职的时候非常痛苦,感觉被他边缘化,有个项目所有的人都拉进去了,唯独没拉我进群,因为这个事情心里一直很难受,平时安排任务的时候,也不回主动给我安排,导致自己感觉很难受,那个时候就希望公司直接把我开了算了,不过真开了,心里还是有点失落。现在想想,职场上有些事情,是需要隐忍的,有些事情根本没必要和别人争论,自己什么分量自己心里最清楚,我觉得这应该和我的性格和家庭有关,这次吃了这么大的亏以后,希望下次不要再犯了,目前都不知道下份工作什么时候能找到。
2024-01-17 21:01:21
358
原创 springboot 动态配置corn表达式
前言需要实现一个动态改变cron表达式的定时器任务。我们知道Spring Boot要使用定时任务,就要在启动类上加上注解,并且在某个方法上加上@Scheduled(cron = “0 0 1 * *?”)这种普通的方式,注解中的cron是没办法改变的,不能自定义动态的。即使当你强行去定义一个cron变量时,也会提醒你需要用修饰。,实现接口重写方法就可以动态配置cron。
2023-12-19 17:55:30
551
原创 2023-10-09
1.springboot 项目的jvm 监控: 优先使用 JMX Exporter 且优先使用通过 -javaagent的方式实现,这个方式不需要更改原项目的配置,也不需要引入。1.明白jvm的监控为何使用jmx exporter。
2023-10-24 15:43:36
93
原创 2023-07月
1.弄懂k8s里面的卷的概念 和 configmap的概念。3.挨个查看 ctsp 代码里面的内容。2.学会使用ELK的相关操作。
2023-07-17 09:51:58
121
原创 Spring Bean的生命周期
个人理解,不喜勿喷。分为3个部分:实例化--->属性填充--->初始化 ,下面分别对每个部分说一下。实例化:这里会调用bean的构造方法进行实例化,默认采用无参构造函数,当你的bean中没有无参构造函数时,但是有其他有参的构造函数,这个时候,spring会使用 推断构造方法,就是尝试给有参的构造函数里面的参数赋值,一般是获取对应的bean,成功以后,也可以调用有参的构造函数,更多关于spring的 推断构造函数,可以参考这个博客:Spring源码学习(十)--推断构造方法_从头再来.....
2022-05-30 13:32:11
110
原创 代码重构之嵌套终极之无敌嵌套if else优化
1.当你看到老项目的这种代码,if 嵌套 if 嵌套 if 嵌套 if 无穷无尽的嵌套比如像下面这种的。一顿操作猛如虎,到后来怀疑自己二百五。分析:其实我们仔细看看上面的判断语句,它们都是在 if 里面的条件是真的情况才执行,也就是说它们都是走的正常情况,才会导致这么无限嵌套下去,那么我们从反面思考是不是就可以终止这种情况呢?也就是我们把不正常的条件先摘出来处理,剩下的就都是正常情况了。这其实就是卫语句的思考模式,也就是逆向思考。卫语句可以减少 if-else 语句嵌套的情况出现。.
2021-12-30 13:24:51
1054
原创 java设计模式
个人才疏学浅,不喜勿喷。1.创建型模式:主要是关注于对象如何创建。2.结构型模式:主要关注对象如何组合再一起,形成新的-更大的结构。3.行为型模式:主要关注对象/类直接如何沟通,各个类需要承担的责任。创建型模式:经典的有 单列 工厂 原型 构建者模式其中构建者模式builder 在 项目使用 的过程。 当一个类的成员变量超过一定数量的时候,就可以使用构建者模式。因为这个时候使用单纯的重载构造函数会有巨大的痛苦,下面列出详细步骤。1.在该类中先声明一...
2021-12-09 11:17:41
335
原创 gitlab cicd
Gitlab-CI/CD preliminary understanding.gitlab-ci.yml的编写在项目的根目录中创建一个叫做.gitlab-ci.yml的文件,gitlab会自动找到他并且在pipeline运行的时候运行这些步骤官方提供的关键词 —> https://docs.gitlab.com/ee/ci/yaml/index.html#yexcept-basic基本的28个关键词代码格式: script before_script after_scri
2021-12-06 16:04:14
199
原创 juc下面的atomic包
atomic包下面 atomic:原子性 指的是一个操作不能被打断 是一个整体1.atomic基本类型,比如atomicInteger atomiclong。2.atomic*Array 比如atomicIntegerArray里面所有的元素都是原子类的3.atomicReference 原子应用 可以提供CAS方法使用场景参考:并发编程 — 原子类 AtomicReference 详解_small_love的专栏-优快云博客通过对 AtomicInteger、AtomicBoole...
2021-12-06 15:52:06
232
原创 spring bean的循环依赖
spring bean的循环依赖问题:通过三级缓存来解决。一级缓存用来缓存已经实例话和初始化好的bean,基本上算的上一个完成的bean。二级缓存用来缓存只实例化好的bean,用于提前暴露bean对象。用于解决循环依赖。三级缓存用来暴露beanfactory工厂。...
2021-12-06 11:21:02
314
1
原创 索引失效的几种情况
可以总结成一个口诀:模型数空运最快。快速记忆,字面意思:运输模型空运是最快的。模:索引列用了模糊查询,%在左边型:索引列的数据类型不对,比如varchar类型的数字和int类型的数字数:索引列使用了函数,比如sum,avg等等空:索引列进行了非空和空判断运:索引列进行了运算,比如++最:索引列的最左原则,要按照索引定义的顺序使用。快:当全表扫描比索引快时,mysql不会使用索引...
2021-12-06 10:17:55
344
原创 面试之springboot自动配置原理
自动配置首先从注解说起。@SpringBootApplication由三个注解组成:@CompanentScan, @EnableAutoConfiguration,@SpringBootConfiguration(其实就是@Configuration注解) ,其中@EnableAutoConfiguration 通过@Import注解 将AutoConfigurationImportSelector .class这个类引进来。该类会去加载所有jar包的META-INFO下面的spring-......
2021-12-06 08:57:20
1258
原创 面试之Spring-Security的登录流程
首先声明以下是我的个人理解:不喜勿喷Filter过滤拦截--》构造userNamePasswordToken--》AuthenticManger--》转给Provider处理--》Provider调用自己写的loadbyusername方法---》认证处理成功后续操作或者不通过抛异常...
2021-12-06 08:38:42
188
原创 Angular点滴
2021-11-19 记 星期5 晴1.首先基于angular-cli 生成项目的基本骨架,生成好以后,只需要在src/app目录下进行编码。2.生成新的component的步骤,可以使用命令:ng generate component <component-name>3.component组件有3个部分...
2021-11-19 11:10:40
623
原创 自定义SpringBoot starter步骤
在面试过程中,被问到了如何自定义一个SpringBoot starter,第一反应,完了不会,没用过,为了防止以后再遇到同样的问题,下定决心要弄懂这个问题,毕竟有面试官都问了,要学会总结,才能成长。以下只是我的个人理解,不喜忽喷。 命名规范:官方的starter是以spring-boot-starter-xxx,自定义的stater 是以xxx-spring-boot-starter,我们应该遵循这个规定。 第一步:定义一个配置类。使用@ConfigurationProp......
2021-11-13 11:02:45
1142
转载 @JsonFormat日期格式转换注解的使用
解决数据库是时间,但是mybatis查询出来是个时间戳。可以使用@JsonFormat //timezone:是时间设置为东八区,避免时间在转换中有误差 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createDate;从前台页面将时间类型的数据传入数据库中,这个时候前台传递给后台的时间格式同样是不一致的,我们通过使用@DataTimeFormat注解就可以很好的解
2021-09-18 12:18:22
2930
转载 SpringBoot使用@Async默认的线程池问题
springboot-@Async默认线程池导致OOM问题_ignorewho的博客-优快云博客
2021-09-17 10:33:15
497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人