自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 SpringBoot接收参数的方式

注:Get 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。springboot 接收集合参数,需要用 RequestParam 注解绑定参数,否则会报错!2.参数用 @RequestParam 标注,表示这个参数需要必传,否则会报错。1.这种方式一般适用参数比较少的情况。

2024-05-23 14:41:50

转载 9个SQL优化技巧

大多数的接口性能问题,很多情况下都是SQL问题,在工作中,我们也会定期对慢SQL进行优化,以提高接口性能。这里总结一下常见的优化方向和策略。

2024-05-21 14:17:10 2

转载 MySQL窗口函数怎么用

先看这段像天书一样的 SQL ,看着就头疼。mysql复制代码这段SQL是干什么用的呢,就是为了计算一个成绩排名,简直大动干戈啊。那有没有简化的方法呢?有的。简化后的版本就是利用今天说的窗口函数。mysql复制代码是不是看上去就简洁清晰多了。首先创建一个表,包含姓名、学科、分数三个字段,用于后面功能的演示。mysql复制代码然后向表中插入一些随机记录。mysql复制代码##什么是窗口函数。

2024-05-17 18:09:45

转载 湖南正宇软件亮相2023年数字科技生态大会

随着科技进步和产业变革的加速演进,人工智能飞速发展,数字化成为全球发展的重要趋势。正宇软件应邀参加本届大会,带着旗下“数字人大”、“数字政协”、“数字统战”及“智能会务”自主品牌亮相产业数字化馆,实力展示公司软件产品和技术服务赋能新时代人大、政协、统战工作发展的创新实践,吸引了众多观众的关注驻足。11月10至13日,“2023数字科技生态大会”在广州举办,大会以“数字科技 焕新启航”为主题,旨在进一步探索数字科技新边界、铸造数字科技新生态、展望数字经济新愿景。

2024-05-15 17:29:19 5

原创 小米15曝光?可能会要稍微涨价

根据当前爆料的一些信息来看,小米15的改动可能主要会集中在核心配置的升级上,进一步优化性能输出。去年发售的小米14可以说是狠狠地让小米风光了一把,从去年年末的手机市场增长排名以及份额来看,小米甚至超过了苹果成为了第一。不论是骁龙8 Gen3平台,还是与徕卡光学联名的影像配置,以及相对亲民的价格,都让小米14在去年一众旗舰机型中“杀出重围”。而近日,有关小米14即将发售的消息也是悄咪咪的放了出来。外观方面,屏幕很可能还是延续上代的6.36英寸,侧沿为等比窄边设计,颜值还是十分在线的。

2024-05-15 17:00:26 532

转载 Spring Boot 开发离不开这些注解,快来学习啦!

Spring Boot 是一款非常流行的 Java 框架,其注解用法复杂而丰富。在介绍 Spring Boot 的注解之前,我们需要先了解 Spring 框架中的 AOP(面向切面编程)概念。Spring 的 AOP 可以帮助开发者实现一些非业务功能的代码,如日志记录、性能监控等。这些功能可以通过定义一个Aspect(切面) 类来实现。在 Spring Boot 中,除了常规的 AOP 注解外,还有以下几类注解,这也是我看到一个后的一点点收获,想要自己也能够总结总结所用到的注解,常记定能有所感悟。

2023-06-06 16:45:33 240

转载 秒杀系统常见问题—如何避免库存超卖?

官方介绍:Redisson是一个基于Redis的Java驻留内存数据网格(In-Memory Data Grid)。它封装了Redis客户端API,并提供了一个分布式锁、分布式集合、分布式对象、分布式Map等常用的数据结构和服务。Redisson支持Java 6以上版本和Redis 2.6以上版本,并且采用编解码器和序列化器来支持任何对象类型。Redisson还提供了一些高级功能,比如异步API和响应式流式API。它可以在分布式系统中被用来实现高可用性、高性能、高可扩展性的数据处理。

2023-05-30 15:13:21 384

转载 JDK8升级JDK17过程中遇到的那些坑

JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。

2023-05-24 16:43:46 1536

转载 浅谈微服务中限流熔断降级的方法论

易波动或者对波动比较敏感;容易影响整体的;不能预测上游行为,或者不能预测下游行为,依赖的上下游有不可预测的行为体。要不要做熔断降级的核心点在于是否可控,有没有不可控因素。

2023-05-17 16:16:47 146

转载 一次偶然机会发现的MySQL“负优化”

其实出现这个问题的场景也不算十分特殊,但是排查原因相当困难。当初是花了好几天查资料翻文档加上不断实验才找到了问题所在。只能说MySQL在解析和执行sql的背后做了很多的优化,但是这部分对于不够熟悉了解的人来说确实是太黑盒,遇到类似的问题排查也很困难。也许这就是程序员成长路上的必经之路吧。

2023-05-09 15:49:05 97

转载 Spring自定义参数解析器设计

Spring的设计很好践行了开闭原则,不仅在封装整合了很多非常强大的能力,也为用户留好了自定义拓展的能力,参数解析器也是这样,Spring提供的参数解析器基本能满足常用的参数解析能力,但很多系统的参数传递并不规范,比如京东color网关传业务参数都是封装在body中,需要先从body中取出业务参数,然后再针对性解析,这时候Spring提供的解析器就帮不了我们了,需要我们扩展自定义适配参数解析器了。

2023-05-04 15:48:47 189

转载 SpringBoot 之启动流程

加载应用程序上下文扫描应用程序中的所有组件自动配置应用程序环境启动嵌入式Web服务器在下面的章节中,我们将逐一分析这些步骤的源代码。在本文中,我们深入分析了 SpringBoot 应用程序的启动过程的源代码。我们了解了 SpringBoot 如何加载应用程序上下文、扫描应用程序中的所有组件、自动配置应用程序环境以及启动嵌入式Web服务器。这些步骤的源代码展示了 SpringBoot 如何简化应用程序的开发和部署。

2023-04-25 16:26:54 653

转载 FastDFS收藏起来,现在开始用Minio吧

MinIO是全球领先的对象存储先锋,目前在全世界有数百万的用户。是一种恢复丢失和损坏数据的数学算法, Minio默认采用 Reed-Solomon code将数据拆分成N/2个数据块和N/2个奇偶校验块。这就意味着如果是16块盘,一个对象会被分成8个数据块、8个奇偶校验块,你可以丢失任意8块盘(不管其是存放的数据块还是校验块),你仍可以从剩下的盘中的数据进行恢复。

2023-04-18 17:16:19 435

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

APT(Annotation Processing Tool)它是Java编译期注解处理器,它可以让开发人员在编译期对注解进行处理,通过APT可以获取到注解和被注解对象的相关信息,并根据这些信息在编译期按我们的需求生成java代码模板或者配置文件(比如SPI文件或者spring.fatories)等。APT获取注解及生成代码都是在代码编译时候完成的,相比反射在运行时处理注解大大提高了程序性能注:因为APT = 注解+ 注解处理器(AbstractProcessor)。

2023-04-12 16:33:10 268

转载 项目中如何对XSS统一处理

则当用户打开页面时,就会弹出一个警告框,而这个警告框可以被恶意脚本所替代,例如读取cookies或者其他敏感信息等操作。XSS攻击是指攻击者利用网站中的漏洞,向页面中注入恶意脚本,从而获取用户的信息或者控制用户的计算机。某一些字段可能是需要支持富文本的,比如公告栏里的内容之类的。通过在参数中的字段上加上类似@Xss的注解,来表示这个字段是不允许输入XSS脚本的。举一个通俗的例子,早期使用JSP页面渲染页面的项目,如果将用户名改成。这是笔者关于Xss的全局统一处理的实现,如有不足欢迎大家评论指正。

2023-04-07 16:36:27 140

转载 微服务中的鉴权该怎么做?

最近刚好有小伙伴在微信上问到这个问题,松哥就来和大家聊一聊,本文主要和小伙伴们聊一聊思路,不写代码,小伙伴们可以结合松哥之前的文章,应该能够自己写出来本文的代码。当然,思路也只是我自己的一点实践经验,不一定是最完美的方案,欢迎小伙伴们在留言中一起探讨。

2023-04-04 16:06:11 418

转载 让远程成为本地,微服务后端开发的福音

Telepresence 可以帮助我们简化本地开发流程,同时保证代码的正确性和可靠性。还能使我们在集群中轻松调试和测试代码,提高开发效率。结合 Rainbond 的部署简化,从开发到部署都非常的简单,让我们专注于代码编写。

2023-03-28 15:45:33 129

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

要想减少重复性代码,少不了全局属性配置的问题,做这方面的模块封装。当然就是为了少敲点代码,以及为了后续需求变更的时候,我们只需要修改一处地方,而不需要在用到这个模块的页面都要改动一遍,这难道不是内耗,和浪费时间吗。出于这个目的,再次深研了扩展全局属性关于 Vue2 中的过滤器,过滤器可以通俗理解成是一个特殊的方法,用来加工数据的。而在 vue3 中,已经去掉了 filters 这个属性,但是我们的需求还是在的。

2023-03-22 16:56:57 2237 1

原创 软件测试和开发哪个好?软件测试就业前景怎样

只要掌握了基本的测试知识和技能,就可以进入软件测试行业,这点我朋友就是个很好例子,他是从其他行业转行测试的,刚开始啥也不懂,就跟着柠檬班的培训老师学习,做训练,慢慢的熟能生巧后,感觉测试其实也挺容易上手的,后面经过大概四个月的理论培训和实践操作,就开始出去找工作,当时也是有老师给指导面试啥的,所以面试环节比较顺利,一个星期内就找到了工作。软件测试和开发两个职业都是IT行业中非常重要的角色,但是两者的工作内容和职责存在着明显的区别,所以关于软件测试和开发哪一个更好,需要根据你们自己的兴趣和能力来决定。

2023-03-21 11:41:06 703

转载 手把手教你验证码检验的登录

在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。

2023-03-20 16:12:48 241

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

昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成类库可以使用?

2023-03-10 16:47:30 1074

转载 从根上理解Cglib与JDK动态代理

最近在阅读到了Spring源码对于两种动态代理使用在不同场景下的使用,两种方式各有利弊写一篇文加深自己的认识。文中对于源码的涉及较少,更多的是作者自己的理解和举例,然后通过部分源码验证。首先看两个面试经常会遇到的关于Spring的问题:@Configuration和@Component注解的不同@Configuration修饰的类会被Cglib动态代理,在类内部方法相互调用添加了@Bean注解的方法时通过在切面方法中调用getBean()方法来保证调用该方法返回的都是同一个实例。

2023-03-07 17:13:10 297

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

NIO(非阻塞)在处理客户端的连接时,可以将对应的channel注册到Selector上,此时我不管他好了没有,我有Selecotr来帮我去扫就绪态的。同步的做法:需要依次4个步骤,注意这里是依次,也就是说完成这个步骤,需要先完成前置步骤,也就是说下一个步骤是要看上一个步骤的执行结果。,会让出CPU时间片,此时是无法处理过来的请求,需要等待其他线程来进行唤醒,该线程才能进行后续操作或者处理其他请求。意味着,当数据还没准备好的时候,即便我调用了阻塞方法,该线程也不会被挂起,后续的请求也能够被处理。

2023-02-27 16:32:57 228

转载 谁说 Java 不能多继承

我正在参加「掘金·启航计划」从今以后,只要谁说Java不能多继承我都会说,是的没错(秒怂)要不你再看看标题写了啥?没毛病啊,你说Java不能多继承,我也说Java不能多继承这不是巧了么,没想到我们对一件事物的看法竟如此一致,看来这就是猿粪啊。

2023-02-22 17:26:17 72

转载 详解Redisson分布式限流的实现原理

我们目前在工作中遇到一个性能问题,我们有个定时任务需要处理大量的数据,为了提升吞吐量,所以部署了很多台机器,但这个任务在运行前需要从别的服务那拉取大量的数据,随着数据量的增大,如果同时多台机器并发拉取数据,会对下游服务产生非常大的压力。之前已经增加了单机限流,但无法解决问题,因为这个数据任务运行中只有不到10%的时间拉取数据,如果单机限流限制太狠,虽然集群总的请求量控制住了,但任务吞吐量又降下来。如果限流阈值太高,多机并发的时候,还是有可能压垮下游。所以目前唯一可行的解决方案就是分布式限流。

2023-02-14 17:28:30 1201

转载 如何优雅地校验后端接口数据,不做前端背锅侠

最近新接手了一批项目,还没来得及接新需求,一大堆bug就接踵而至,仔细一看,应该返回数组的字段返回了 null,或者没有返回,甚至返回了字符串 "null"???这我能忍?我立刻截图发到群里,用红框加大加粗重点标出。后端同学也积极响应,答应改正。第二天,同样的事情又在其他的项目上演,我只是一个小前端,为什么什么错都找我啊!!日子不能再这样下去,于是我决定写一个工具来解决遇到 bug 永远在找前端的困境。

2023-02-07 17:40:40 551

原创 软件测试培训哪里好?主要还是看需要提升班和小白班

我已经学习柠檬班的课程已经一个多月了,但由于是小白,所以在前期感觉比较吃力,但是后面经过老师的疏导建议,很快掌握了学习的技巧,现在已经能轻松应对了,而通过这一个月的学习,我感觉还是收获颇多,学习了很多软件测试的知识,争取学成后找到一份好的工作和好的薪资!如果是学小白班,无论哪个机构的讲师,带个小白入门都是绰绰有余的了,自己多试听对比几家就行了,尽量找一个班里人数少的,纯直播的课程,面授也不是不行,只不过太贵了,花没必要的冤枉钱就不建议了。“我报了柠檬班自动化的课,22年12月刚完结,感觉还不错”

2023-02-07 11:31:29 385

转载 Redis缓存的主要异常及解决方案

Redis缓存在互联网中至关重要,可以很大的提升系统效率。本文介绍的缓存异常以及解决思路有可能不够全面,但也提供相应的解决思路和代码大体实现,希望可以为大家提供一些遇到缓存问题时的解决思路。如果有不足的地方,也请帮忙指出,大家共同进步。

2023-02-01 17:18:54 133

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

今天,我们介绍了三种数据库迁移的方式,分别是:逻辑迁移、文件迁移和物理迁移。逻辑迁移的方式主要是使用 mysqldump 命令进行迁移,其原理主要是将数据库中的数据和结构生成 SQL 文件,再导入即可。

2023-01-16 17:24:03 272

原创 拿着不谢!软件测试面试的这些回答技巧,你一定要知道!

建议提前做好往期互联网大厂的面试真题背诵及刷题,可以在网上扒拉,也可以通过专业的题库进行刷题,前者互联网网上有很多,但比较杂乱,容易浪费时间,后者,可以试试一个柠檬班软件测试题库,是一个小程序形式的,因为本就是软件测试培训机构根据专业开发出来的,里面涉及到了功能测试、自动化测试、性能测试、安全测试各种真题及答案,专业性很强,关键还是免费!面试前了解清楚公司的主营业务,面试岗位的技术需求,发展情况,回答时可以说说公司的情况,根据公司的需求谈行业趋势及技术发展,不能无边际的泛泛而谈。

2023-01-12 09:45:14 155

转载 微服务的版本号要怎么设计?

若开头的标识符都相同时,栏位比较多的先行版本号优先层级比较高。首先,在微服务中,我们所有的请求一般来说都会经过网关,我们可以在网关中提取出请求头的 Accept 参数,然后根据 Accept 中的请求版本号,做不同的请求转发,如果版本号是 1.0,就转发到 1.0 的服务上去;多个 API 共存的时候,一个比较简单的办法是在 API 设计的时候,加上版本号,例如 /v1/xxx 或者 /v2/xxx,不过这种写法有一个小小的缺陷,就是路径中加了版本号之后,这个路径看起来就不是一个完美的 REST 路径了。

2023-01-11 16:45:20 176

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

微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败,您的系统可能会变得不一致。那针对这样的情况有什么好的方法或者设计保证呢?本文就和大家分享一个“发件箱模式”, 可以很好的避免此类问题。欢迎关注个人公众号『JAVA旭阳』交流沟通发件箱模式虽然听上去可能很简单,但是在平时开发中可能会忽略掉。

2023-01-09 16:37:14 92

原创 软件测试面试时掌握这些回答技巧,让你获得更高薪酬

这是面试中的重要环节,作为面试者,如果对这一环节的面试没得信息,那就建议你在面试前提前刷题背答案做准备,这里有一个免费的刷题小程序柠檬班软件测试你题库你们可以试试,里面包含了功能测试、自动化测试、性能测试……相信很多人都碰到过因为面试前准备不足而导致面试失败的时间吧,所以,为了提高面试成功率,帮助大家尽快拿到高薪offer,我给你们总结了几个方面的软件测试面试技巧,希望对即将参加软件测试面试的你有所帮助。其实,在职场中,不管是面试还是工作,我们都需要解决各种各样的问题,有的简单,有的麻烦。

2023-01-06 09:50:09 119

转载 SpringBoot整合达梦数据库

本文以x86 win64 DM8为例安装完毕后打开DM数据库配置助手创建数据库,设置字符集utf8,去除字符大小写敏感创建表空间及用户,最好是一个库对应一个用户一个表空间,创建用户时需要指定对应表空间需要对用户分配DBA操作权限。

2023-01-05 17:20:36 1522

转载 Spring 6 的新特性:HTTP Interface

近期,Spring 6 的第一个 GA 版本发布了,其中带来了一个新的特性——HTTP Interface。这个新特性,可以让开发者将 HTTP 服务,定义成一个包含特定注解标记的方法的 Java 接口,然后通过对接口方法的调用,完成 HTTP 请求。看起来很像使用 Feign 来完成远程服务调用,下面我们参考官方文档来完成一个 Demo。

2023-01-03 17:23:52 339

转载 为什么要有refreshToken

当你第一次接触的时候,你有没有一个这样子的疑惑,为什么需要refreshToken这个东西,而不是服务器端给一个期限较长甚至永久性的accessToken呢?

2022-12-30 17:10:27 3263

转载 MySQL同步数据到Elasticsearch

背景随着平台的业务日益增多,基于数据库的全文搜索查询速度较慢,已经无法满足需求。所以,决定基于Elasticsearch 做一个全文搜索平台,支持业务相关的搜索需求。那么第一个问题就是:如何从MySQL同步数据到Elasticsearch?

2022-12-28 17:29:38 636

原创 软件测试面试技巧 这么准备,拿下心仪offer不是问题

虽然这些仅是一些日常的提问,你可以临场发挥的,但如果想要回答得相对完美、满意,那么建议你在面试前把自己和软件测试相关的经历再全部捋一遍,这样在面对提问时也可以更为流畅地回答。俗话说,知己知彼百战不殆,作为测试员,在面试前对面试官可能提出的问题进行总结和准备,是帮助我们取得好成绩的最佳方式,所以,这些有关软件测试的面试技巧记得不要错过了!总之,软件测试岗位的面试虽然没有其他岗位那么简单,但也并不是很难的,只要你前期做好了足够的准备,理论知识和技术没问题,拿下好的offer肯定是没问题的。

2022-12-28 10:37:40 492 2

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

研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String Constant Pool。那让我来看看究竟是怎么一回事吧。

2022-12-26 16:33:27 64

转载 做了个 Java 简洁版身材计算

为了参加比赛 码上掘金编程后端挑战赛 (juejin.cn)... 我选择了做一个简洁版的身材计算...

2022-12-22 17:32:35 1002

空空如也

空空如也

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

TA关注的人

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