企业开发中Maven的基本使用

2023-04-25
阅读 8 分钟
1k
管理依赖:通过<dependencyManagement>,声明依赖版本,进行依赖的版本控制的。引入依赖:通过<dependency>,进行依赖的实际引入。构建jar包:在需要打包的模块中添加<build>并加入定制插件plugin进行jar生成。依赖冲突:通过工具或者命令行排查冲突的依赖后,使用exclusion来排出冲突的依赖。

Java对象的序列化和反序列化

2023-04-18
阅读 4 分钟
830
Java 对象的序列化和反序列化是一种将对象转换成字节流并存储在硬盘或网络中,以及从字节流中重新加载对象的操作。Java 的序列化和反序列化提供了一种方便的方式,使得可以将对象在不同的应用程序之间进行交互。

聊聊如何运用JAVA注解处理器(APT)

2023-04-12
阅读 5 分钟
643
什么是APTAPT(Annotation Processing Tool)它是Java编译期注解处理器,它可以让开发人员在编译期对注解进行处理,通过APT可以获取到注解和被注解对象的相关信息,并根据这些信息在编译期按我们的需求生成java代码模板或者配置文件(比如SPI文件或者spring.fatories)等。APT获取注解及生成代码都是在代码编译时候完成...

项目中如何对XSS统一处理

2023-04-07
阅读 2 分钟
368
XSS攻击是什么?XSS攻击是指攻击者利用网站中的漏洞,向页面中注入恶意脚本,从而获取用户的信息或者控制用户的计算机。举一个通俗的例子,早期使用JSP页面渲染页面的项目,如果将用户名改成nick<alert>1</alert>,则当用户打开页面时,就会弹出一个警告框,而这个警告框可以被恶意脚本所替代,例如读取cook...

国产化?我们在信创下的改变。。。

2023-04-04
阅读 2 分钟
482
信创是什么信创是一个统称概念,实际是把现有与信息技术相关的行业结合在一起,命名为“信息技术应用创新产业”,简称“信创”。信创包括:基础硬件、基础软件、应用软件、信息安全四大板块。其中,基础硬件主要包括:芯片、服务器/PC、存储等;基础软件包括:数据库、操作系统、中间件等。应用软件包括:办公软件、ERP 和其...

传参base64时的+号变空格问题

2023-03-28
阅读 2 分钟
444
问题发生上上周,看到一位老哥找我们组同事联调接口,不知道是什么问题,两人坐一起搞了快1个小时,看起来好像有点复杂。突然,老哥发出一声卧槽,"我传参里的+号,到你这怎么变成了空格!",这个声音很大,我明显的听到了,很快,我就大概Get到了他们的问题点。我猜测他们遇到的问题大概如下:

Vue3: 巧用自定义全局属性,封装只为高效率

2023-03-22
阅读 2 分钟
533
简介要想减少重复性代码,少不了全局属性配置的问题,做这方面的模块封装。当然就是为了少敲点代码,以及为了后续需求变更的时候,我们只需要修改一处地方,而不需要在用到这个模块的页面都要改动一遍,这难道不是内耗,和浪费时间吗。出于这个目的,再次深研了扩展全局属性扩展全局属性某些插件会通过 app.config.globa...

Spring Boot配置HTTPS,解决微信小程序上线问题

2023-03-20
阅读 2 分钟
866
前言由于微信小程序在体验版和上线版本,需要用https连接,所以你需要申请一个域名,并为这个域名申请证书。怎么利用acme.sh免费申请证书在上篇文章有提到利用acme.sh免费建立https连接,这里就记录一下Spring Boot中配置HTTPS,再利用Docker进行部署。实现步骤1.生成PKCS12格式的证书文件上一篇中acme.sh免费申请证书后...

柠檬班软件测试怎么样?从这几方面即可了解清楚

2023-03-20
阅读 1 分钟
265
软件测试是保证软件质量的一个重要环节,随着近些年软件科技的崛起,软件测试工程师也随之被重视起来,那么想要从事软件测试工作需要学习什么呢?  进行软件测试知识的学习,那么前提肯定就是得先学习测试基础知识,如了解什么是软件测试、为什么需要测试、测试的类型、测试的流程等等基础概念,之后就是学习测试工具和...

深入浅出ThreadLocal

2023-03-13
阅读 5 分钟
544
ThreadLocal相信大家都有用过的,一般用作存取一些全局的信息。比如用户信息,流程信息,甚至在Spring框架里面通过事务注解Transactional去获取数据库连接的实现上,也有它的一份功劳。ThreadLocal作为一个进阶必会知识点,而且还是面试高频考点。网上博客对它的解读也必然不会少,但是网上博客解读水平良莠不齐,看多了...

Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

2023-03-10
阅读 2 分钟
401
昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成类库可以使用?之前TJ没有做过这类需求,所以去研究了一下,并找到了一个不过的解决方案,今天推荐给大家,如果您正要做类似内容,那就拿来试试,如果暂时没需求,就先了解收藏(技多不压身)。JSqlParserJSqlParser是一个用Java编写的SQL解析...

为啥一个 main 方法就能启动项目

2023-03-07
阅读 10 分钟
439
在 Spring Boot 出现之前,我们要运行一个 Java Web 应用,首先需要有一个 Web 容器(例如 Tomcat 或 Jetty),然后将我们的 Web 应用打包后放到容器的相应目录下,最后再启动容器。在 IDE 中也需要对 Web 容器进行一些配置,才能够运行或者 Debug。而使用 Spring Boot 我们只需要像运行普通 JavaSE 程序一样,run 一下 ...

软件测试怎么学?如何系统学习软件测试?

2023-02-28
阅读 1 分钟
332
软件测试是保障软件质量的重要环节,对于软件开发过程中的每个阶段都有至关重要的作用。如果想从事软件测试行业,或者是提升自己的测试技能,那么软件测试该怎么学?下面介绍一些学习软件测试的方法。1、参加培训课程参加专业的软件测试培训课程可以帮助你更加系统、全面地学习软件测试。如柠檬班培训机构,课程内容丰富...

IO:阻塞和非阻塞、同步和异步

2023-02-27
阅读 4 分钟
451
阻塞:当数据还没准备好时,调用了阻塞的方法,则线程会被挂起,会让出CPU时间片,此时是无法处理过来的请求,需要等待其他线程来进行唤醒,该线程才能进行后续操作或者处理其他请求。非阻塞:意味着,当数据还没准备好的时候,即便我调用了阻塞方法,该线程也不会被挂起,后续的请求也能够被处理。同步

MyBatis获取参数值的两种方式:#{} 与 ${}

2023-02-22
阅读 4 分钟
606
{}与${}的区别{}的本质是占位符赋值,${}的本质是字符串拼接${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号如何使用${}与#{}获取参数值获取单个字面量类型的参数此时可以...

只改了五行代码接口吞吐量提升了10多倍

2023-02-14
阅读 7 分钟
586
背景公司的一个ToB系统,因为客户使用的也不多,没啥并发要求,就一直没有经过压测。这两天来了一个“大客户”,对并发量提出了要求:核心接口与几个重点使用场景单节点吞吐量要满足最低500/s的要求。当时一想,500/s吞吐量还不简单。Tomcat按照100个线程,那就是单线程1S内处理5个请求,200ms处理一个请求即可。这个没有...

我终于搞懂了async/await、promise和setTimeout的执行顺序

2023-02-08
阅读 3 分钟
514
从一道题目出发今天看到一道面试题,是关于async/await、promise和setTimeout的执行顺序,题目如下:async function async1() {

为什么大家都说 SELECT * 效率低?

2023-02-01
阅读 2 分钟
616
无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。效率低的原因先看一下最新《阿里java开发手册(泰山版)》中 MySQL 部分描述:【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写...

绝对惊喜!不花钱就能用的软件测试面试题库,一定要拿下

2023-01-18
阅读 2 分钟
382
软件测试题库哪里有?相信这是很多即将要去进行软件测试岗位面试的工程师们,都想要知道的一个话题吧,毕竟软件测试项目内容这么多,谁也不能保证自己能回答上面试官们问的面试问题,因此,就想通过刷题的题海战术来提升一下自己的面试通过率。那哪里有软件测试题库呢? 关于这一话题,我还是蛮有发言权的,前段时间,有...

怎样快速地迁移 MySQL 中的数据?

2023-01-16
阅读 5 分钟
479
我们通常会遇到这样的一个场景,就是需要将一个数据库的数据迁移到一个性能更加强悍的数据库服务器上。这个时候需要我们做的就是快速迁移数据库的数据。那么,如何才能快速地迁移数据库中的数据呢?今天我们就来聊一聊这个话题。数据库的数据迁移无外乎有两种方式,一种是物理迁移,另一种则是逻辑迁移。首先,我们生成 ...

说说 Spring 定时任务如何大规模企业级运用

2023-01-11
阅读 6 分钟
509
Spring 定时任务简介Cloud Native定时任务是业务应用开发中非常普遍存在的场景(如:每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等等), 解决方案很多 ,Spring 框架提供了一种通过注解来配置定时任务的解决方案,接入非常的简单,仅需如下两步:

你知道微服务架构中的“发件箱模式”吗

2023-01-09
阅读 3 分钟
574
前言微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败,您的系统可能会变得不一致。那针对这样的情况有什么好的方法或者设计保...

SpringBoot整合达梦数据库

2023-01-05
阅读 6 分钟
1k
安装完毕后打开DM数据库配置助手创建数据库,设置字符集utf8,去除字符大小写敏感创建表空间及用户,最好是一个库对应一个用户一个表空间,创建用户时需要指定对应表空间需要对用户分配DBA操作权限数据表迁移针对现有项目或框架库需要同步迁移到达梦数据库,本文以mysql5.7为例,打开DM数据迁移工具,注意保持对象名大小...

buff加持!不花钱就能用的软件测试面试题库,绝对是面试前必备

2023-01-05
阅读 2 分钟
406
软件测试面试不同于其他岗位的面试那样,询问一些常见问题即可过关,作为技术类岗位,在进行软件测试面试时,面试官一般会分两个方向进行提问,一个是常见问题,另一个则是软件测试岗位相关技术问题。  如果说前者完全不需要准备,全靠自己临场发挥就能应付过去的话,那后者就需要提前进行准备,如刷面试题,背上往期面...

Apache ShardingSphere在转转亿级交易系统落地实践

2023-01-03
阅读 3 分钟
698
大促期间DB压力大,单库查询qps上万占用大量数据库资源,写性能大大降低;数据与日剧增,单库中包含非常多数据量过数亿的大表,占用空间接近服务器的容量上限;数据量太大,数据备份和恢复需要耗费很长时间,极端情况下丢失数据的风险越高。

都什么年代了,你居然还连不上GitHub?

2022-12-30
阅读 3 分钟
1.1k
前言众所周知,GitHub是我们程序员在上班或者学习的时候经常会逛的一个地方[手动狗头],而且如果我们想参与开源项目的话,GitHub也是一个很好的平台。可问题是,GitHub网页总是进不去,提交代码到GitHub也总是超时,简直烦死😭😭。

7min到40s:SpringBoot启动优化实践

2022-12-28
阅读 13 分钟
599
0 背景公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢,常常需要6-7分钟才能暴露端口,严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、BeanPostProcessor 原理和源码调试等手段排查发现,在 Bean 扫描和 Bean 注入这个两个阶段有很大的性能瓶颈。通过 JavaConfig 注册 Bean, 减...
封面图

软件测试面试话术 这样准备,让你成功拿到高薪offer

2022-12-27
阅读 2 分钟
481
面试就是就是进入岗位前的临门一脚,如果因为准备不足而导致面试失败那可就亏大了!因此,为了帮助大家提高面试成功率,尽快拿到高薪offer,我为你们准备了一套面试话术以及技巧,希望对即将参加软件测试面试的你们有所帮助。 面试技巧在正式面试前,一定要刷面试真题,背项目答案。这样才不至于面试官提问的时候,回答...

正确理解和使用JAVA中的字符串常量池

2022-12-26
阅读 3 分钟
646
前言研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String Constant Pool。那让我来看看究竟是...
封面图

web端实现AR人脸特效

2022-12-15
阅读 5 分钟
732
前言直播、短视频、在线会议等应用越来越多地进入人们的生活,随之诞生的是丰富的各类创意玩法与新鲜体验,其中大量应用了以AI检测和图形渲染为基础的AR技术。