自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java完全自学手册,从外包到大厂,再到年薪100万都靠它

同时,巧妇难为无米之炊,一条学习新知识的一般方法为先看视频学基础,再看书学原理,最后看博客查缺补漏,沉淀消化。涉及 的知识点主要包括jsp,servlet,tomcat,http,MVC等知识。SSM框架 这对于初学者来说,是一个坎,前几年学完这些,已经可以开始找工作了,所以恭喜你能坚持带这里,胜利就在前方。java基础 学习任何语言,都是先从他的基本语法开始,如果你有C语言的基础,会容易许多,没有也不用现学。多线程 理解多线程,才能更好地理解框架源码,进行高并发的架构设计,是重中之重。...

2022-08-09 12:00:31 398

原创 发布Android库至MavenCentral详解

创建完仓库之后,我们回复热心的工作人员,接下来就是等他们的处理结果了。# 这个是发布到maven的中心仓库,你可以在https://s01.oss.sonatype.org/#stagingRepositories找到。# 然后~/.gnupg/secring.gpg就是上述提到你需要配置的signing.secretKeyRingFile。这篇文章里面,我是使用的android library做例子的。# 这个是发布到我们的本地,你可以在~/.m2/repository/的目录找到你发布的包。...

2022-08-06 19:50:24 670

原创 危险,请马上替换代码中的BeanUtils

首先公司内部就遇到过 commons 包的 BeanUtils 进行属性拷贝性能较差的真实案例,然后该同事换成了 Spring 的 BeanUtils 性能好了很多,感兴趣大家可以使用性能测试框架或者基准测试框架去对比,这里就不对比了。因此慎用属性转换工具,如果可能建议自定义转换类,使用 IDEA插件自动填充,效率也挺高, A 或 B 中任何属性类型不匹配,甚至删除一个属性, 编译阶段即可报错,而且直接调用 get set 的效率也是非常高的。这就导致在使用很多属性映射工具时,编译时不容易明显的错误。...

2022-08-06 19:45:37 367

原创 使用软引用实现缓存机制

可以看到第二次运行是从缓存中直接读取的数据,也可以看出,其实用软引用实现缓存机制,读取的对象是同一个对象。

2022-08-06 19:42:34 330

原创 我们来聊聊锁升级吧

在很久之前,我在面实习生的时候,就有人问过我synchronized的锁升级过程,我当时只是浅浅了解,后面其实了解了锁升级的流程。但其实我并不是很明白,究竟优化了哪里,究竟是针对哪种场景进行优化,我其实更想得到这个锁升级过程中的引入场景。尤其是看到JDK 15废弃并禁用了偏向锁之后,我其实在想为什么要移除这项技术,是JDK 有了更好的优化,还是这项技术不再适用于现在。这里直接说答案吧,答案就在JEP 374中。我本来想直接贴答案的,但是考虑到有的同学还不清楚synchronized的升级流程,这里还是先简单

2022-08-06 19:33:44 181

原创 备份和恢复Kubernetes集群中的Etcd数据

Kubernetes作为目前最炙手可热的容器编排软件,受到越来越多互联网公司的喜爱,之所以会出现这样的现象,主要还是因为这套编排软件不仅功能强大,还非常方便进行二次开发,整个Kubernetes的生态圈非常活跃。Apiserver,Controller Manager,Scheduler,Proxy可以认为是这套“骨架”的组成部分,而Etcd便是这套系统的底座,整个系统的数据都存储在它当中,保证了Etcd的稳定性整个容器编排系统的稳定性就有了保证。4,使用备份的快照,恢复数据。p2和p3节点类似。...

2022-08-05 19:51:44 245

原创 网络空间测绘——MQTT服务篇

MQTT协议是1999年IBM公司发布的一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议。MQTT协议的底层构建基于TCP/IP协议,它的特点是其规范简单,非常适用于低性能、低开销和有限带宽的物联网场景。作为一种轻量级的传输协议,MQTT协议的传输过程有三方构成,分别是发布者(Publish)、代理(Broker)和订阅者(Subscribe)。如图1所示。图1 MQTT发布订阅过程其中,发布者和订阅者由客户端充当,而代理则又服务器端充当。...

2022-08-05 19:49:12 592

原创 如何管理LAXCUS计算机集群

与Laxcus计算机集群交互,目前主要通过“我的集群”的检索栏来执行,这类似Windows 11的“搜索”功能,需要输入关键字或者命令,然后交给“我的集群”后端来处理执行。这些运行信息主要是一些警告和故障,比如发生CPU超载,内存、硬盘空间不足,在线人数达到最大运行规模、分布式应用软件运行过程中出现故障时,这些节点就会主动将信息投递给“我的集群”,在图形界面上,以文字、图像、声音的方式显示出来,提示管理员注意,让管理员调整修改运行规则,动态增加计算机节点等工作。“我的集群”启动封面​。...

2022-08-05 19:46:53 322

原创 如何设置跨域隔离启用 SharedArrayBuffer

以上就是我在使用 wasm SharedArrayBuffer 的功能的时候总结出的经验,如果有不对的地方欢迎指出。

2022-08-05 19:44:43 2552 1

原创 【大屏项目】SpringBoot + Vue 实现的可视化拖拽编辑的

大屏设计(AJ-Report)是一个可视化拖拽编辑的全开源项目,直观,酷炫,具有科技感的图表工具。内置的基础功能包括数据源,数据集,报表管理。多数据源支持,内置mysql、elasticsearch、kudu驱动,支持自定义数据集省去数据接口开发,支持17种大屏组件,不会开发,照着设计稿也可以制作大屏。三步轻松完成大屏设计:配置数据源—->写SQL配置数据集—->拖拽配置大屏—->保存发布。欢迎体验。...

2022-08-05 19:41:34 1690 1

原创 React组件应用于Spring MVC工程

/ 3、【hash:base64:5】:指代的是一个5位的hash值,这个hash值是根据模块名和标识符计算的,因此不同模块中相同的标识符也不会造成样式冲突。// 3、【hash:base64:5】:指代的是一个5位的hash值,这个hash值是根据模块名和标识符计算的,因此不同模块中相同的标识符也不会造成样式冲突。两种技术栈共存的阶段,两种技术栈页面存在一些相同的业务功能点,如果分别开发和维护,就需要双倍的人力成本,因此,下文将尝试将。// 2、【local】:指代的是原本的选择器标识符。...

2022-08-05 19:40:02 250

原创 最具有中国特色的微服务组件,阿里新一代SpringCloud学习指南

正所谓“分久必合,合久必分”,在企业高速发展的今天,单体架构已经很难适应业务的快速变化,微服务的出现,为应对快速变化的业务需求、冗长的开发周期提供了一种新的解决方案。它以模块化的思维应对快速变化的业务需求,使用比如自动化部署、自动化业务监控预警、调用链监控、容器化,以及快速开发等思想加快软件的开发周期,实现更快速、更高质量的交付,整体提高客户的满意度。系统地介绍了微服务普及的各种知识点,横跨软件开发的整个生命周期,采用目前前沿的技术进行知识点的展开。成套产品搭配完善的可视化界面给开发运维带来了极大的便利。.

2022-08-05 17:09:21 168

原创 开发一套高容错分布式系统

系统架构到这个程度为止,其实在当时而言是运行的相当不错的,每日亿级的请求以及数据场景下,这套系统架构都能承载的很好,如果写数据库并发更高可以随时加更多的主库,如果读并发过高可以随时加更多的从库,同时单表数据量过大了就分更多的表,Slave计算节点也可以随时按需扩容。最后一个造成负载不均衡的原因,就是每个计算任务对应一个数据分片和一个SQL,但是不同的SQL执行效率不同,有的SQL可能只要200毫秒就可以结束,有的SQL要1秒,所以不同的SQL执行效率不同,造成了不同的计算任务的执行时间的不同。...

2022-08-04 16:59:46 124

原创 基础到高级涵盖11个技术,Alibaba最新出品711页Java面试神册真香

按照国内的IT求职环境来看,互联网企业虽然多,但求职的人每年也都在往上增长,企业能提供出来的工作岗位数是远远少于求职者数的,所以现在互联网企业面试都流行先来一套八股文,从框架概念和基础知识上就能筛选掉一批人,然后再考察算法和设计,就节省了很多精力和时间成本,这已经成为一个不可逆的趋势,作为行业内的我们不能改变就只能适应环境,卷就完了~有求必应的博主我本篇就为大家带来前时间在网站上偶然看到的一份最新Java面试神册,近期有面试需求的小伙伴一定要拿去看看,有一说一,是真的很全!这两点无疑是现在面试都会考察的。.

2022-08-04 16:50:01 78

原创 重新审视分布式系统:永远不会有完美的一致性方案……

如今使用的几乎所有软件都是分布式系统的一部分,手机上的应用程序与托管在云中的服务一起工作,托管服务本身就是大规模的分布式系统,通常运行在遍布全球的机器上,大数据系统和大规模数据库分布在许多机器上,大多数科学计算和机器学习系统在多个处理器上并行工作,即使是传统的桌面操作系统以及诸如电子表格和文字处理器之类的应用程序也在与分布式后端服务紧密集成。分布式系统中,多台不可靠的机器并行运行,通过具有任意延迟的网络链路彼此发送消息。怎么能确信这些系统在混乱的情况下能够做到我们想要的呢?...

2022-08-04 16:32:03 98

原创 面试官:可以谈谈乐观锁和悲观锁吗

乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。**它们的使用是非常广泛的,不局限于某种编程语言或数据库。**乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。...

2022-08-02 17:41:51 135

原创 使用jOOQ 3.14合成外键在视图上写隐式连接

全的方式浏览你的to-one关系,隐式生成LEFTJOIN操作,而不必一直考虑连接谓词,以及正确的连接顺序。考虑一下这个Sakila数据库查询,如果SQL原生支持隐式连接。SELECT复制代码它在本地SQL中被翻译成这个查询。有需要大厂面经和面试技巧思维导图的朋友可以点进去了解一下,点击即可!SELECT复制代码**注意**从jOOQ3.14开始支持内联,这取决于外键是否是强制性的/非空。默认行为是产生LEFTJOIN,这是隐式连接可选外键的正确方式。JOIN。...

2022-07-31 18:02:33 141

原创 Spring中@Component和@Configuration的区别

直接上总结加了@Configuration的类会被CGLIB进行动态代理,不加或者加@Component注解则不会被代理。

2022-07-31 17:52:23 815

原创 JavaWeb——请求和响应Request&Response

状态码说明200执行成功302它和307一样,都是用于重定向的状态码。只是307目前已不再使用304请求资源未改变,使用缓存。400请求错误。最常见的就是请求参数有问题404请求资源未找到405请求方式不被支持500服务器运行内部错误状态码说明1xx消息2xx成功3xx重定向4xx客户端错误5xx服务器错误。...

2022-07-31 17:32:32 372

原创 现阶段Java高可用集群架构与微服务架构的简单分析

综上,我们对于高可用集群和微服务架构做了简单的场景和架构图分析,并不是说什么场景下一定要用什么架构,也不是说什么最潮流就用什么架构,而是根据实际成本和产出作为出发点做选择。httpshttpshttpshttpshttpshttps。...

2022-07-31 17:21:25 177

原创 阿里云部署JavaWeb环境

记录了阿里云部署JavaWeb环境的步骤和流程,以及安装JDK/JRE、tomcat、MySQL时遇到的问题和解决方式。有需要大厂面经和面试技巧思维导图的朋友可以点进去了解一下,点击。

2022-07-31 17:16:37 140

原创 APT + Transform 实现多模块应用Application生命周期分发

创建完AppLifecyclePlugin,创建文件src/main/resources/META-INF/gradle-plugins/lauter.applifecycle.properties。则是在transform阶段使用asm在AppLifecycleManager的构造方法中调用,将代理类路径传入,最终通过反射存储在callbacks中。各位大佬畅所欲言,提出此方案的短板。这样能实现需求,但每增加一个模块,就得回到MainApplication中添加一个,不够优雅不够装,这时候就可以用上。..

2022-07-31 17:11:06 682

原创 JUnit 5测试中的临时目录(附实例及代码)

通过@TempDir,你可以在测试中轻松地处理临时目录。这里没有魔法你注解Path或File对象,并在你需要时注入。其余的由JUnit为你处理。在GitHub上找到这些例子https。

2022-07-30 16:42:43 345

原创 在jOOQ中获取数据的多种不同方式

方便和开发者的用户体验是jOOQ的API设计的核心。像任何好的集合API一样,jOOQ提供了各种可组合的基元,允许更有效地将SQL整合到你的应用程序中。SQL只是对数据结构的描述。jOOQ帮助在JVM上以一种类型安全的方式描述该数据结构。以同样类型安全的方式进行进一步处理是很自然的,就像我们习惯于从JDK自己的集合API或第三方(如jOOλ、vavr、streamex等)获得的那样。...

2022-07-30 16:41:32 405

原创 为单行查询设置JDBC Statement.setFetchSize()为1的方法指南

优化是一种棘手的野兽。有些事情在推理时似乎很有意义,但在实际测量中,看似更优化的事情实际上更糟糕,或者不相关。在这个案例中,一开始,我们似乎应该提示JDBC驱动我们只获取1行的意图。我不知道为什么JDBC驱动程序的表现比我不提示它的时候更差。也许它分配的缓冲区太小,不得不增加,而不是分配的缓冲区太大,但足够大。我过去也做过类似的基准测试,试图"优化"ArrayList或的初始大小。我几乎无法持续地超越默认值。有时,"改进"似乎确实改善了情况。有时,它又使事情变得更糟。...

2022-07-30 16:40:18 565

原创 如何用jOOQ将一个嵌套的SQL集合类型安全地映射到一个嵌套的Java地图上

最近在StackOverflow上有一个非常酷的问题,是关于。在过去,,它允许在jOOQ中嵌套集合。这一次,与其把数据嵌套到一个,为什么不把它嵌套到一个?看一下Sakila数据库,让我们看看我们如何将数据取到这个Javarecord类型中){}复制代码结果类型应该把FILM.TITLE,以及每天每部电影赚的钱或DVD租赁店的金额包起来。我们可以使用其他的数据结构,但让我们假设这是我们想在用户界面或服务或其他方面消费的东西。在jOOQ中,和以往一样,由于MULTISETrecord或。...

2022-07-30 16:38:46 145

原创 jOOQ是如何设计事务API(详细指南)

从jOOQ3.4开始,我们在jOOQ的JDBC之上有一个简化事务逻辑的API,从jOOQ3.17和开始,在R2DBC之上也将提供一个同等的API,用于反应式应用。与所有的jOOQ一样,交易是使用显式的、基于API的逻辑实现的。在JakartaEE和Spring中实现的隐式逻辑对于那些到处使用注解和方面的平台来说非常有效,但基于注解的范式并不适合jOOQ。本文展示了jOOQ是如何设计事务API的,以及为什么Spring语义在jOOQ中是默认的。...

2022-07-30 16:37:11 541

原创 使用MULTISET来比较数据集的实例介绍

使用普通SQL可能更难解决的问题是这样的问题哪些电影与给定的电影X有相同的演员?像往常一样,我们在这个例子中使用sakila数据库。用SQL(例如PostgreSQL,具体来说)解决这个问题的可能方式是什么?下面的查询给出了每部电影的演员概况SELECTfilm_id,复制代码它产生的结果是这样的复制代码请注意,在SQL中,数组的行为就像列表一样,也就是说,它们保持着自己的排序,所以明确地对数组进行排序对于能够相互比较演员是很重要的。。...

2022-07-30 16:33:28 158

原创 用jOOQ 3.17投射类型安全的嵌套表记录

一个长期存在的功能请求没有得到jOOQ社区的喜爱,尽管很多人可能想要它。它的标题是让Table延伸到这个功能的具体含义是什么?

2022-07-30 16:31:00 142

原创 jOOQ 3.16和Java EE vs Jakarta EE的简单介绍

一股浪潮在Java生态系统中荡漾开来。它就是将javax改名为jakarta包名。现在,虽然我们都在抱怨,都在摇头,因为企业法律和工程利益之间的冲突,但最终是时候继续前进,了解这对jOOQ的具体意义。在jOOQ3.16中,所有这3个依赖都被迁移到JakartaEE中,。这种变化在某种程度上是不可避免的,但考虑到SpringBoot3.0也将进行迁移,并暂时将jOOQ从其开发构建中移除(见),我认为我们现在不妨进行迁移。迁移对jOOQ具体意味着什么?...

2022-07-30 16:29:33 693

原创 【无标题】多集嵌套集合使不再有MultipleBagFetchException

我最近偶然发现了这个有趣的StackOverflow问题,关于。这个问题超受欢迎,答案也很多。整个问题中讨论了各种限制,这一切都归结为一个简单的事实。连接是嵌套集合的错误工具给出一个像Sakila数据库的模式[ACTORFILMCATEGORY没有什么特别的。问题是,当使用ORM时,考虑到O(Object,面向对象)的性质,我们想用层次结构来表示这些数据,作为一个图,或者至少是一个树。当我们想用JSON或XML表示时也是如此。例如,在Java中,下面的DTO是上述模式的自然表示){}...

2022-07-30 16:27:10 174

原创 精通Java事务编程-弱隔离级别之快照隔离和可重复读

若她在提交转账请求后、银行DB系统执行转账的过程中间,查看两个账户的余额,她可能看到账号2在收到转账前的余额(500),和账户1在完成转账之后的余额(400)。这种使用追加的B树,每个写入事务(或一批事务)都会创建一个新的B树,当创建时,从该特定树根生长的树就是该时刻DB的一致性快照。而定义了可重复读,表面看起来接近快照隔离。图-7中,当事务12从账户2读时,会看到500余额,因为500余额的删除是由事务13完成的(根据规则3,事务12看不到事务13执行的删除),同理400美元记录的创建也不可见。...

2022-07-30 16:04:09 126

原创 【函数式编程实战】 CompletableFuture、反应式编程源码解析与实战

同步就是a程序强依赖b程序,我必须等到你的回复或者执行完毕,才能做出下一步响应,类似于编程中程序被解释器(JVM)顺序执行一样(加载>验证>准备>解析>初始化);异步则相反,a程序不强依赖b程序,响应的时间也无所谓,无论你返回还是不返回,a程序都能继续运行,也就是说我不存在等待对方的概念,a程序就是异步非阻塞的。下面举一个例子就说明什么是同步、什么是异步反应式编程是最近几年才提出的概念,主要有四个特征响应式,反应式编程的响应速度应该很快,而且是稳定可预测的。韧性。...

2022-07-29 16:41:42 353

原创 特殊的阻塞队列 - java.util.concurrent.SynchronousQueue 分析

和常见的阻塞队列比起来处理方式不一样,也比较难理解。对于不公平和不公平分为了两种实现方式,利用了FIFO(公平)和LIFO(不公平)的特性来实现。相比于可存储的队列,导致其他线程就必须自旋等待交付,所以如果交付占用了大量时间就导致其他线程就需要等待特别久的时间,但好处是不需要存储而且是直接交付的。SynchronousQueue还有一些理解不到位的地方,以上仅供参考。httpshttpshttps。...

2022-07-29 16:39:56 152

原创 几行代码,搞好 SpringBoot 接口恶意刷新和暴力请求

在实际项目使用中,必须要考虑服务的安全性,当服务部署到互联网以后,就要考虑服务被恶意请求和暴力攻击的情况,下面的教程,通过intercept和redis针对url+ip在一定时间内访问的次数来将ip禁用,可以根据自己的需求进行相应的修改,来打打自己的目的;代码中redis的使用的是分布式锁的形式,这样可以最大程度保证线程安全和功能的实现效果。代码中设置的是1S内同一个接口通过同一个ip访问5次,就将该ip禁用1个小时,根据自己项目需求可以自己适当修改,实现自己想要的功能;做积极的人,而不是积极废人。...

2022-07-29 16:38:08 65

原创 面试题:Java序列化与反序列化

Externalizable继承自Serializable接口需要我们重写writeExternal()与readExternal()方法,这是强制性的实现Externalizable接口的类必须要提供一个public的无参的构造器,因为反序列化的时候需要反射创建对象Externalizable接口实现序列化,性能稍微比继承自Serializable接口好一点首先我们定义一个对象类ExUser//注意,必须加上pulic无参构造器}}}}}}}}...

2022-07-29 16:31:44 453

原创 【无标题】

Java基础非常重要,俗话说得好地基不牢后续地动山摇,所以基础很重要@mikechen在过去的时间中,我写过Java基础的整个系列,为了方便大家的阅读,也为了让知识更系统化,这里我单独把Java基础系列一并罗列于此,希望对有用的人有用。以下为整个Java系列的目录,希望大家喜欢~!...

2022-07-29 16:01:36 42

原创 java~Map集合整理

维护HashMap各个桶中的Entry链,before、after用于维护LinkedHashMap的双向链表,虽然它们的作用对象都是Entry,但是各自分离,是两码事儿。SortedMap(java.util.SortedMap)接口是Map的子接口,SortedMap中增加了元素的排序,这意味着可以给SortedMap中的元素排序。不过遗憾的是,HashMap是无序的,也就是说,迭代HashMap所得到的元素顺序并不是它们最初放置到HashMap的顺序。特别地,该迭代顺序可以是插入顺序,...

2022-07-29 15:56:30 116

原创 如何解决 Spring Cloud 下测试环境路由问题

SpringCloudTencent微服务开发框架自六月底正式对外宣发后,受到了许多开发者非常火热的关注。不到一个月时间,GithubStar数就已突破2000,超过1000名开发者加入我们的社群,并有20多个开发者参与贡献项目代码,项目的热门程度极大地超出我们的预期,同时也验证了我们在最初宣发文章里的观点SpringBoot+SpringCloud仍是当前使用相当广泛开发框架。在这一个月时间里,SpringCloudTencent的关注者们最关心的问题就是,...

2022-07-29 15:53:54 155

原创 原力计划微服务实战|集中配置中心Config非对称加密与安全管理

刚才我们注意到,我们之间访问如http//localhost8005/encrypt/status、http//localhost8081/encrypt等状态,加密、解密接口是可以之间访问的。意思是通过我们的配置信息,无法获取可用配置资源,是因为配置中心增加了安全管理,客户端无权访问了,这时,在客户端增加访问的用户名和密码就可以了。同样访问http//localhost8005/encrypt/status,返回ok。password123456#增加访问配置中心密码信息。...

2022-07-29 15:51:17 165

空空如也

空空如也

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

TA关注的人

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