上海疫情数据:得出10项颠覆性结论

网友们越来越神通广大了.......

母子乱伦:和儿子做了,我该怎么办?

2021年推特网黄Top10排行榜

《敦刻尔克》引发的惨案:袁腾飞怼周带鱼被封号

自由微信安卓APP发布,立即下载! | 提交文章网址

ImportNew

我摊牌了!真正的灰度队列实现方案!全网你都搜不到!

这块,但是它发送的消息却是灰度消息,而消息的消费方可能也未发生过功能变动,也不会有与之对应的灰度消费标识,这种情况下如果我们将灰度的消息进行丢弃的话,那么会造成最终的数据不完整。2.
11月10日 下午 1:32

微服务之服务监控和治理、容错隔离与 Docker 部署

rootfs,容器就能够为进程构建出一个完整的文件系统,且实现了与宿主机的环境隔离。也正是有了rootfs,才能实现基于容器的本地应用与云端应用运行环境的一致。另外,为了方便镜像的复用,Docker
10月28日 上午 7:00

宽表为什么横行?

系统时首先要做的就是准备宽表。有时系统中的宽表可能会有上千个字段,经常因为“过宽”超过了数据库表字段数量限制还要再拆分。为什么大家乐此不疲地造宽表呢?主要原因有两个。一是为了提高查询性能。现代
10月28日 上午 7:00

Java 云原生微服务框架 Quarkus 入门实践

生成的原生可执行文件与底层平台相关,不能在当前平台之外的其他平台上运行。但对云原生应用来说,这并不是一个问题。云原生应用的设计目标是在容器中运行,所运行的底层平台是固定的。1.3
10月27日 上午 11:30

云原生时代的 Java 虚拟机

上运行的程序的性能;通过预编译(ahead-of-time)编译Java程序为原生可执行程序;多种编程语言混编在一个程序中(polyglot);类似于
10月26日 上午 11:30

20 张图带你彻底了解 ReentrantLock 加锁解锁的原理

异常,产生的后果与说明二相同。java.concurrent.LockShouldWithTryFinallyRule.rule.desc还举了两个例子,正确的案例如下:Lock
10月23日 下午 1:30

Docker夺命连环15问,你能坚持第几问?

(给ImportNew加星标,提高Java技能)目录什么是Docker?Docker的应用场景有哪些?Docker的优点有哪些?Docker与虚拟机的区别是什么?Docker的三大核心是什么?如何快速安装Docker?如何修改Docker的存储位置?Docker镜像常用管理有哪些?如何创建Docker容器?Docker在后台的标准运行过程是什么?Docker网络模式有哪些?什么是Docker的数据卷如何搭建Docker私有仓库Docker如何迁移备份?Docker如何部署MySQL?前言本文总结了Docker常见的问题和坑,采用问答的形式,分享给大家1.什么是Docker?Docker
10月19日 下午 7:12

SpringBoot 接口数据加解密技巧,so easy!

这日,刚撸完2两代码,正准备掏出手机摸鱼放松放松,只见老大朝我走过来,并露出一个”善意“的微笑,兴伟呀,xx项目有于安全问题,需要对接口整体进行加密处理,你这方面比较有经验,就给你安排上了哈,看这周内提测行不...,额,摸摸头上飘摇着而稀疏的长发,感觉我爱了。和产品、前端同学对外需求后,梳理了相关技术方案,主要的需求点如下:尽量少改动,不影响之前的业务逻辑;考虑到时间紧迫性,可采用对称性加密方式,服务需要对接安卓、IOS、H5三端,另外考虑到H5端存储密钥安全性相对来说会低一些,故分针对H5和安卓、IOS分配两套密钥;要兼容低版本的接口,后面新开发的接口可不用兼容;接口有GET和POST两种接口,需要都要进行加解密;需求解析:服务端、客户端和H5统一拦截加解密,网上有成熟方案,也可以按其他服务中实现的加解密流程来搞;使用AES放松加密,考虑到H5端存储密钥安全性相对来说会低一些,故分针对H5和安卓、IOS分配两套密钥;本次涉及客户端和服务端的整体改造,经讨论,新接口统一加
10月15日 下午 10:25

Lombok 同时使用 @Data 和 @Builder 的巨坑,千万别乱用!

⾃定义⼀个注解,代码如下:再实现⼀个⾃定义的注解处理器,代码如下:测试类如下:2.对注解处理器进⾏编译,随后使⽤注解处理器对类进⾏编译⾸先需要先对注解处理器进⾏编译(javac
10月14日 上午 11:11

这12款idea插件,能让你代码飞起来!

前言基本上每个程序员都会写代码,但写代码的速度不尽相同。为什么有些人,一天只能写几百行代码?而有些人,一天可以写几千行代码?有没有办法,可以提升开发效率,在相同的时间内,写出更多的代码呢?今天我跟大家一起聊聊在idea中,能提升编码效率的12种插件,希望对大家有所帮助。1.
10月12日 下午 6:45

假如我是核酸系统架构师,我会...

,按照东软的公告,每天可以完成1200万核酸样本采集。假设核酸检测记录一天1000万条数据,一周就有7000万条,1个月就能达到3亿条数据。那么势必要使用分库分表。医护人员扫市民的健康码
10月11日 下午 6:35

21个MySQL表设计的经验准则

前言作为后端开发,我们经常需要设计数据库表。整理了21个设计MySQL表的经验准则,分享给大家,大家看完一定会有帮助的。1.命名规范数据库表名、字段名、索引名等都需要命名规范,可读性高(一般要求用英文),让别人一看命名,就知道这个字段表示什么意思。比如一个表的账号字段,反例如下:acc_no,1_acc_no,zhanghao正例:account_no,account_number表名、字段名必须使用小写字母或者数字,禁止使用数字开头,禁止使用拼音,并且一般不使用英文缩写。主键索引名为pk_字段名;唯一索引名为uk_字段名;普通索引名则为idx_字段名。2.选择合适的字段类型设计表时,我们需要选择合适的字段类型,比如:尽可能选择存储空间小的字段类型,就好像数字类型的,从tinyint、smallint、int、bigint从左往右开始选择小数类型如金额,则选择
10月10日 上午 11:42

Spring事务的这10种坑,你稍不注意可能就会踩中!

对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。在某些业务场景下,如果同时有多张表的写入操作,为了保证操作的原子性(要么同时成功,要么同时失败)避免数据不一致的情况,我们一般都会使用spring事务。没错,spring事务大多数情况下,可以满足我们的业务需求。但是今天我要告诉大家的是,它有很多坑,稍不注意事务就会失效。不信,我们一起看看。1.错误的访问权限@Servicepublic
10月9日 下午 4:30

“分库分表" ?选型和流程要慎重,否则会失控

恭喜你,贵公司终于成长到一定规模,需要考虑高可用,甚至分库分表了。但你是否知道分库分表需要哪些要素?拆分过程是复杂的,提前计划,不要等真正开工,各种意外的工作接踵而至,以至失控。本文意图打开数据库中间件的广度,而不考虑实现深度,至于库表垂直和水平分的概念和缘由,不做过多解释。所以此文面向的是有一定研发经验,正在寻找选型和拆分流程的专业人士。切入层次以下,范围界定在JAVA和MySQL中。我们首先来看一下分库分表切入的层次。①
10月7日 上午 11:30

如何实现数据库读一致性

是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。事务的性质:原子性
10月5日 上午 11:30

新来个技术总监,把限流实现的那叫一个优雅,佩服!

在电商高并发场景下,我们经常会使用一些常用方法,去应对流量高峰,比如限流、熔断、降级,今天我们聊聊限流。什么是限流呢?限流是限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求,而对于超过限制的流量,则通过拒绝服务的方式保证整体系统的可用性。根据限流作用范围,可以分为单机限流和分布式限流;根据限流方式,又分为计数器、滑动窗口、漏桶限令牌桶限流,下面我们对这块详细进行讲解。常用限流方式计数器计数器是一种最简单限流算法,其原理就是:在一段时间间隔内,对请求进行计数,与阀值进行比较判断是否需要限流,一旦到了时间临界点,将计数器清零。这个就像你去坐车一样,车厢规定了多少个位置,满了就不让上车了,不然就是超载了,被交警叔叔抓到了就要罚款的,如果我们的系统那就不是罚款的事情了,可能直接崩掉了。程序执行逻辑:可以在程序中设置一个变量
10月3日 上午 11:30

掘地三尺搞定 Redis 与 MySQL 数据一致性问题

redisCache.put(cacheValue)}缺点由于数据仅在缓存未命中后才加载到缓存中,因此初次调用的数据请求响应时间会增加一些开销,因为需要额外的缓存填充和数据库查询耗时。2.1.2
10月2日 上午 11:36

美团点评数据库高可用架构的演进与设想

的演进历程,同时也介绍了业界一些高可用的做法。数据库最近几年的发展突飞猛进,数据库的高可用设计上没有完美的方案,只有不断的突破和创新,我们也一直在这条路上探索更加优秀的设计与更加完美的方案。-
9月29日 上午 11:30

数据库中间件详解

insert),如果读请求走从库,写请求走主库,由于跨了多个库,那么本地事务已经无法控制,属于分布式事务的范畴。而分布式事务非常复杂且效率较低。因此对于读写分离,目前主流的做法是,事务中的所有
9月28日 下午 2:30

如何写一个读写分离中间件

fetchCachedConnection(connectionMap.keySet().iterator().next().toString()).get().getMetaData();
9月27日 上午 11:30

一款优秀数据库中间件的不完全解析

1、数据库中间件有啥用有一天,你去三亚玩耍,就想玩个冲浪。即使你不差钱,难道还要自己采买快艇、滑板等装备来满足这为数不多的心血来潮吗?租一个就行了嘛。这其实就是连接池的作用。数据库中间件可以理解为是一种具有连接池功能,但比连接池更高级的、带很多附加功能的辅助组件。不仅可以租冲浪板,还可以提供地点推荐、上保险等等各类服务。从网上的资料看,zdal
9月26日 上午 11:30

四种缓存的避坑总结

问题,但是处理不好可能会造成更严重的后果:整个机器内存被打满,机器可能会挂掉。其实挂掉一台在一般企业的生产环境还好,因为一般都会有容灾的冗余机器。但是更常见的一种情况是机器忙于
9月25日 上午 11:30

单体架构服务转型至分布式的踩坑经历

(给ImportNew加星标,提高Java技能)背景我们在聊架构风格之前先明确一个问题,什么是架构?我们为什么要选择架构?用来解决哪些问题?什么是架构书本定义:“软件的架构是一种抽象的结构,他由软件的各个组成部分和这些部分之间的依赖关系构成”。我的理解是,架构就是根据业务选择合适的技术、中间件,并且按照合适的设计模式对这些模块,进行组装来满足业务特性的需求。选择架构风格的目的我们选择架构风格的初衷在于
9月23日 上午 11:30

当问到组件实现原理时,面试官是在刁难你吗?

(给ImportNew加星标,提高Java技能)今天我想跟你探讨的话题是:当面试官问你某某组件的实现原理是什么时,他究竟想了解什么?你又需要了解到什么层面上呢?经历过面试的你一定知道,社招岗位的面试里一定会包含项目经历介绍的。面试官会问及一些特定场景下实现方案的设计,还会问你一些基础知识和基本算法。而在考察基础知识时,你一定被面试官追问过,某某组件的实现原理是什么。那么,对于仅仅使用组件的开发人员来说,了解组件的实现原理真的很重要吗?这会不会是面试官的故意刁难呢?在回答这些问题之,我先跟你分享一下我面试候选人的经历。当时,候选人已有五年的工作经验。虽然没什么大厂工作经历,但是从简历来看,他对于互联网领域常见的一些组件,比如
9月22日 上午 11:30

消息中间件该如何实现高可用架构?

万?这个真的不是开玩笑的,如果大家留意互联网行业的新闻的话和小道消息的话,就应该知道近几年一些大型互联网公司都出现过类似的情况,损失惨重。咱们做码农的就得被祭天了,是不是?3.
9月21日 上午 11:30

当老板让我从 Java8 升到 Java11

JDK,需要检查业务代码中是否有兼容性问题,或者你就单纯想扫描下业务代码中是否有什么什么你关心的东西,那么你可以仅仅修改这个项目中的各种规则表达式,并且定制化自己的
9月20日 下午 6:57

MyBatis-Plus联表查询的短板,终于有一款工具补齐了

以往在使用myatis-plus的时候,我们的Mapper层接口都是直接继承的BaseMapper,使用mpj后需要对其进行修改,改为继承MPJBaseMapper接口。@Mapperpublic
9月19日 下午 5:55

别被骗了,try-catch语句真的会影响性能吗?

Compiler)。PS:分层编译分为:“解释模式”、“编译模式”、“混合模式”;解释模式下运行时,编译器不介入工作;编译模式模式下运行,会使用即时编译器优化热点代码,有可选的即时编译器[C1
9月18日 下午 5:13

两万字!多线程硬核50问!

前言金九银十快要来了,整理了50道多线程并发面试题,大家可以点赞、收藏起来,慢慢品!~1、为什么要使用多线程选择多线程的原因,就是因为快。举个例子:如果要把1000块砖搬到楼顶,假设到楼顶有几个电梯,你觉得用一个电梯搬运快,还是同时用几个电梯同时搬运快呢?这个电梯就可以理解为线程。所以,我们使用多线程就是因为:
9月17日 下午 12:36

放弃FastDFS,Spring Boot 整合 MinIO 实现分布式文件服务,真香!

测试上述4个步骤已经整合完成了,下面直接调用接口上传一张图片试一下,如下:接口返回的URL就是文件的访问地址,直接输入浏览器访问即可。在MInIO中也可以看到存储的文件,如下图:-
9月15日 下午 11:05

万字长文,SpringSecurity实现权限系统设计

基础教程及实战示例:https://github.com/javastacks/spring-boot-best-practice导入依赖添加web依赖导入JWT和Security依赖
9月14日 下午 9:49

面试官:单核 CPU 支持 Java 多线程吗?什么?

(给ImportNew加星标,提高Java技能)由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。时间片多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢?
9月13日 下午 10:56

40 个 SpringBoot 常用注解:让生产力爆表!

WebApplicationContext,并定义其会话的生命周期。下面是一个简单的示例:@ConditionalOnWebApplicationHealthCheckController
9月12日 下午 8:00

没有几十年功力,写不出这一行“看似无用”的代码!!

有什么用。当时我就想:这题真难(S)啊(B)。现在发现原来是我道行不够,小丑竟是我自己。还真的是有用。实践前面其实说的都是理论。这一部分我们来拿代码实践跑上一把,就拿我之前分享过的《真是绝了!这段被
9月11日 下午 9:50

用小白都能看懂的大白话告诉你:什么是分布式计算系统?

目录1、从一个新闻门户网站案例引入2、推算一下你需要分析多少条数据?3、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统?1、从一个新闻门户网站案例引入现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。比如说现在你有一个网站,咱们假设是一个新闻门户网站好了。每天是不是会有可能上千万用户会涌入进来看你的新闻?好的,那么他们会怎么看新闻呢?其实很简单,首先他们会点击一些板块,比如“体育板块”,“娱乐板块”。然后,点击一些新闻标题,比如“20年来最刺激的一场比赛即将拉开帷幕”,接着还可能会发表一些评论,或者点击对某个好的新闻进行收藏。那么你的这些用户干的这些事儿有一个专业的名词,叫做“用户行为”。因为在你的网站或者APP上,用户一定会进行各种操作,点击各种按钮,发表一些信息,这些都是各种行为,统称为“用户行为”。好了,现在假如说新闻门户网站的boss说想要做一个功能,在网站里每天做一个排行榜,统计出来每天每个版块被点击的次数,包括最热门的一些新闻。然后呢,在网站后台系统里需要有一些报表,要让他看到不同的编辑产出的文章的点击量汇总,做一个编辑的绩效排名,还有很多类似的事情。这些事情叫什么呢?你可以认为是基于用户行为数据进行分析和统计,产出各种各样的数据统计分析报表和结果,供网站的用户、管理人员来查看。这也有一个专业的名词,叫做“用户行为分析”。2、推算一下你需要分析多少条数据?好,咱么继续。如果你要对用户行为进行分析,那你是不是首先需要收集这些用户行为的数据?比如说有个哥儿们现在点了一下“体育”板块,你需要在网页前端或者是APP上立马发送一条日志到后台,记录清楚“id为117的用户点击了一下id位003的板块”。同样,这个东西也有一个专业的名词,叫做“用户行为日志”。那你可以来计算一下,这些用户行为如果采用日志的方式收集,每天大概会产生多少条数据?假设每天1000万人访问你的新闻网站,平均每个人做出30个点击、评论以及收藏等行为,那么就是3亿条用户行为日志。假设每条用户行为日志的大小是100个字节,因为可能包含了很多很多的字段,比如他是在网页点击的,还是在手机APP上点击的,手机APP是用的什么操作系统,android还是IOS,类似这样的字段是很多的。那么你就有每天大概28GB左右的数据,这里一共包含3亿条。假如对这3亿条数据,你就自己写个Java程序,从一个超大的28GB的大日志文件里,一条一条读取日志来统计分析和计算,一直到把3亿条数据都计算完毕,你觉得会花费多少时间?不可想象,根据你的计算逻辑复杂度来说,搞不好要花费几十个小时的时间。所以你觉得这种大数据场景下的分析,这么玩儿靠谱么?不靠谱。3、黄金搭档:分布式存储+分布式计算所以这个时候,你就可以首先采用分布式存储的方式,把那3亿条数据分散存放在比如30台机器上,每台机器大概就放1000万条数据,大概就1GB的数据量。大家看看下面的图:接着你就可以上分布式计算了,你可以把统计分析数据的计算任务,拆分成30个计算任务,每个计算任务都分发到一台机器上去运行。也就是说,就专门针对机器本地的1GB数据,那1000万条数据进行分析和计算。这样的好处就是可以依托30台机器的资源并行的进行数据的统计和分析,这也就是所谓的分布式计算了。每台机器的计算结果出来之后,就可以进行综合性的汇总,然后就可以拿到最终的一个分析结果,大家看下图。假设之前你的3亿条数据都在一个30GB的大文件里,然后你一个Java程序一条一条慢慢读慢慢计算,需要耗费30小时。那么现在把计算任务并行到了30台机器上去,就可以提升30倍的计算速度,是不是就只需要1小时就可以完成计算了?所以这个就是所谓的分布式计算,他一般是针对超大数据集,也就是现在很流行的大数据进行计算的。首先需要将超大数据集拆分成很多数据块分散在多台机器上,然后把计算任务分发到各个机器上去,利用多台机器的CPU、内存等计算资源来进行计算。这种分布式计算的方式,对于超大数据集的计算可以提升几十倍甚至几百倍的效率,其实这个理论和概念,也是大数据技术的基础。比如现在最流行的大数据技术栈里,Hadoop
9月10日 下午 4:09

看完这个故事,你敢说还不懂Docker?

程序员受苦久矣多年前的一个夜晚,风雨大作,一个名叫Docker的年轻人来到Linux帝国拜见帝国的长老。“Linux长老,天下程序员苦于应用部署久矣,我要改变这一现状,希望长老你能帮帮我”长老回答:“哦,小小年纪,口气不小,先请入座,你有何所求,愿闻其详”Docker坐下后开始侃侃而谈:“当今天下,应用开发、测试、部署,各种库的依赖纷繁复杂,再加上版本之间的差异,经常出现在开发环境运行正常,而到测试环境和线上环境就出问题的现象,程序员们饱受此苦,是时候改变这一状况了。”Docker回头看了一眼长老接着说到:“我想做一个虚拟的容器,让应用程序们运行其中,将它们需要的依赖环境整体打包,以便在不同机器上移植后,仍然能提供一致的运行环境,彻底将程序员们解放出来!”Linux长老听闻,微微点头:“年轻人想法不错,不过听你的描述,好像虚拟机就能解决这个问题。将应用和所依赖的环境部署到虚拟机中,然后做个快照,直接部署虚拟机不就可以了吗?”Docker连连摇头说到:“长老有所不知,虚拟机这家伙笨重如牛,体积又大,动不动就是以G为单位的大小,因为它里面要运行一个完整的操作系统,所以跑起来格外费劲,慢就不说了,还非常占资源,一台机器上跑不了几台虚拟机就把性能拖垮了!而我想要做一个轻量级的虚拟容器,只提供一个运行环境,不用运行一个操作系统,所有容器中的系统内核还是和外面的宿主机共用的,这样就可以批量复制很多个容器,轻便又快捷”Linux长老站了起来,来回踱步了几圈,思考片刻之后,忽然拍桌子大声说到:“真是个好想法,这个项目我投了!”Docker眼里见光,喜上眉梢,“这事还真离不开长老的帮助,要实现我说的目标,对进程的管理隔离都至关重要,还望长老助我一臂之力!”“你稍等”,Linux长老转身回到内屋。没多久就出来了,手里拿了些什么东西。“年轻人,回去之后,尽管放手大干,我赐你三个锦囊,若遇难题,可依次拆开,必有大用”Docker开心地收下了三个锦囊,拜别Linux长老后,冒雨而归。锦囊1:chroot
9月1日 上午 11:30

分布式系统中的时间

1。如果节点接受到一个事件,如果事件逻辑时间戳比本地逻辑时间戳还小就忽略,否则就接收此事件,并更新节点本地的逻辑时间戳。新的值取节点本地逻辑时间戳和接收事件所携带的逻辑时间戳二者的最大值并自增
8月30日 上午 11:30

MySQL 的 timestamp 会存在时区问题?

jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B9&useUnicode=true&characterEncoding=utf8其中的
8月28日 上午 11:30

Java 日期处理易踩的十个坑

Calendar.getInstance();System.out.println("当前"+calendar.get(Calendar.MONTH)+"月份");运行结果:当前2月份解析:The
8月25日 上午 11:30

不指定时区会踩坑:MySQL Java 驱动升级遇到的 Bug 分析

个小时呢?this.serverSession.setServerTimeZone(TimeZone.getTimeZone(canonicalTimezone));根源就是这几句代码:public
8月24日 上午 11:30

不要再用 if (obj != null) 判空了!!!

Optional.ofNullable(person).orElse("person为null");测试展示类Person代码(如果有朋友不明白可以看一下这个):public
8月20日 上午 10:56

新来个技术总监,给公司项目引入了全新的业务架构,堪称最佳实践!

本文开始前,问大家一个问题,你觉得一份业务代码,尤其是互联网业务代码,都有哪些特点?我能想到的有这几点:互联网业务迭代快,工期紧,导致代码结构混乱,几乎没有代码注释和文档。互联网人员变动频繁,很容易接手别人的老项目,新人根本没时间吃透代码结构,紧迫的工期又只能让屎山越堆越大。多人一起开发,每个人的编码习惯不同,工具类代码各用个的,业务命名也经常冲突,影响效率。大部分团队几乎没有时间做代码重构,任由代码腐烂。每当我们新启动一个代码仓库,都是信心满满,结构整洁。但是时间越往后,代码就变得腐败不堪,技术债务越来越庞大。这种情况有解决方案吗?也是有的:小组内定期做代码重构,解决技术债务。组内设计完善的应用架构,让代码的腐烂来得慢一些。(当然很难做到完全不腐烂)设计尽量简单,让不同层级的开发都能快速看懂并上手开发,而不是在一堆复杂的没人看懂的代码上堆更多的屎山。而COLA,我们今天的主角,就是为了提供一个可落地的业务代码结构规范,让你的代码腐烂的尽可能慢一些,让团队的开发效率尽可能快一些。COLA是什么COLA是由阿里大佬张建飞所提出的一种业务代码架构的最佳实践,并且已经在阿里云脚手架代码生成器中作为一个可选项,可见其已经拥有了一定影响力。COLA
8月18日 下午 6:00

为什么 "𠮷𠮷𠮷".length !== 3 ?

水平有限,文章中必定存在大量不准确的描述、甚至错误的内容,如有发现还请善意指出。作者:fesky来源:https://juejin.cn/post/7025400771982131236-
8月17日 下午 6:24

@Transactional注解加不加 rollbackFor = Exception.class 的区别?

说明@Transactional并不能回滚Exception异常总结一下@Transactional只能回滚RuntimeException和RuntimeException下面的子类抛出的异常
8月16日 下午 7:10

Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏

(给ImportNew加星标,提高Java技能)一、为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)二、什么是跨域当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域三、非同源限制无法读取非同源网页的
8月15日 下午 7:47

公司新来一个同事,把 @Transactional 事务注解运用得炉火纯青。。

(给ImportNew加星标,提高Java技能)前两天在工作中忙的焦头烂额,涉及到@Transactional对于事务的控制,便仔细研究了一下,颇有所获,花费好了几天测试整理,今天才发表出来,希望看到博客的老铁们能有所获吧。话不多说直奔正题。先简单介绍一下Spring事务的传播行为:所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值。TransactionDefinition.PROPAGATION_REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。TransactionDefinition.PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。TransactionDefinition.PROPAGATION_NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。TransactionDefinition.PROPAGATION_NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。TransactionDefinition.PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。TransactionDefinition.PROPAGATION_NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。然后说一下Spring事务的回滚机制:Spring的AOP即声明式事务管理默认是针对unchecked
8月13日 下午 10:21

看了我的MyBatis-Plus用法,同事也开始悄悄模仿了...

(给ImportNew加星标,提高Java技能)本文主要介绍mybatis-plus这款插件,针对springboot用户。包括引入,配置,使用,以及扩展等常用的方面做一个汇总整理,尽量包含大家常用的场景内容。关于mybatis-plus是什么,不多做介绍了,看官方文档:baomidou.com
8月12日 下午 11:26

微软新工具准确率达80%,程序员:真的栓 Q

点击标题可跳转秒杀系统的艺术高并发,你真的理解透彻了吗?高并发下如何防重?看完本文有收获?请转发分享给更多人关注「ImportNew」,提升Java技能点赞和在看就是最大的支持❤️
8月11日 上午 11:30

秒杀系统的艺术

(给ImportNew加星标,提高Java技能)极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用
8月9日 上午 11:30

京东面试:MQ 消息丢失、重复、积压问题,如何解决?

ID,或者附加一个连续递增的版本号,然后在消费端做对应的版本校验。具体怎么落地实现呢?你可以利用拦截器机制。在生产端发送消息之前,通过拦截器将消息版本号注入消息中(版本号可以采用连续递增的
8月6日 上午 11:30