01 2023 档案

摘要:都用过@Autowired,但你知道它是怎么实现的吗前言 在使用Spring开发的时候,配置的方式主要有两种,一种是xml的方式,另外一种是 java config的方式。在使用的过程中java config,我们难免会与注解进行各种打交道,其中,我们使用最多的注解应该就是@Autowired注解了。这个注解的作用就是注入一个定义好的bean。 那么 阅读全文
posted @ 2023-01-28 11:58 JAVA旭阳 阅读(926) 评论(0) 推荐(1)
摘要:IntelliJ中高效重构的 10 个快捷方式前言 在日常的开发工作中,我们经常需要重构,重构可以让我们写出的代码更上一层楼。所以,我会借助IntelliJ提供的一些功能,帮助我高效进行重构。这里是我推荐10个快捷方式,也是我每天都在使用的,非常有用。 欢迎关注个人公众号【JAVA旭阳】交流学习 1.将选择提取到局部变量 (Ctrl + Alt 阅读全文
posted @ 2023-01-27 10:04 JAVA旭阳 阅读(147) 评论(0) 推荐(0)
摘要:前言 2023年我们公司主抓代码质量,所以单元测试必不可少,而且都写到了年底的绩效目标中了。在考虑如何达成这个目标的过程中,我发现了一个关于单元测试的IDEA插件——SquareTest,它可以帮助我们提高编写单元测试的速度,你知道吗? 欢迎关注个人公众号【JAVA旭阳】交流学习 SquareTes 阅读全文
posted @ 2023-01-26 09:48 JAVA旭阳 阅读(693) 评论(0) 推荐(0)
摘要:我总结了写出高质量代码的12条建议前言 工作这么多年,见过许许多多的代码,有的写的好,有的写的很糟糕。好的代码不外乎要做到你的代码可阅读、可维护、可扩展。说难不难,说简单也不简单,那么本文我将总结工作这么多年该如何写出整洁代码的一些实践。 欢迎关注个人公众号【JAVA旭阳】交流学习 1.使用清晰且有意义的命名 干净代码最重要的原则之 阅读全文
posted @ 2023-01-25 10:06 JAVA旭阳 阅读(1166) 评论(3) 推荐(7)
摘要:工作这么多年,我总结的数据传输对象 (DTO) 的最佳实践前言 数据传输对象 (DTO) 是一种设计模式,常用于软件开发不同层或者不同系统之间传输数据。DTO 的主要目的是封装数据并防止它被其他层或系统直接访问或修改。通过遵循一组最佳实践,开发人员可以确保他们的 DTO 有效且高效。 欢迎关注个人公众号【JAVA旭阳】交流学习 DTO 的重要性 DTO 是 阅读全文
posted @ 2023-01-23 10:55 JAVA旭阳 阅读(1887) 评论(1) 推荐(2)
摘要:你知道哈希算法,但你知道一致性哈希吗?前言 假如让你为淘宝这种数据量非常大的公司的设计一个可扩展的数据存储系统,你该如何存储和管理数据呢?总不能放在单个服务器上吧,肯定放不下,必然需要水平扩展。那么这样就带来一个问题,这个数据要存储在哪个服务器上呢?这就引入了本文的主题一致性哈希算法,可能你没听过,那么本文就通过一个简单的例子带你一步一 阅读全文
posted @ 2023-01-22 12:21 JAVA旭阳 阅读(395) 评论(0) 推荐(1)
摘要:【架构设计】你真的理解软件设计中的SOLID原则吗?前言 在软件架构设计领域,有一个大名鼎鼎的设计原则——SOLID原则,它是由由Robert C. Martin(也称为 Uncle Bob)提出的,指导我们写出可维护、可以测试、高扩展、高内聚、低耦合的代码。是不是很牛,但是你们都理解这个设计原则吗,如果理解不深入的话,更这我通过JAVA示例深入浅出 阅读全文
posted @ 2023-01-14 10:10 JAVA旭阳 阅读(768) 评论(1) 推荐(4)
摘要:这可能是Feign调用可重试的最佳方案了前言 在我们公司里,不同的服务之间通过Feign进行远程调用,但是,我们在尝试使调用可重试时遇到了一个小问题,Feign框架本身可以配置的自己的重试机制,但是它是一刀切的方式,所有的调用都是同样的机制,没有办法像我们希望的那样在每个方法的基础上配置。不过我在项目中探索除了一种新的写法,通过sprin 阅读全文
posted @ 2023-01-11 15:32 JAVA旭阳 阅读(717) 评论(0) 推荐(1)
摘要:每个Java程序员都必须知道的四种负载均衡算法前言 一般来说,我们在设计系统的时候,为了系统的高扩展性,会尽可能的创建无状态的系统,这样我们就可以采用集群的方式部署,最终很方便的根据需要动态增减服务器数量。但是,要使系统具有更好的可扩展性,除了无状态设计之外,还要考虑采用什么负载均衡算法,本文就带领大家认识以下常见的4种负载均衡算法。 欢迎关注 阅读全文
posted @ 2023-01-10 17:39 JAVA旭阳 阅读(682) 评论(0) 推荐(0)
摘要:Spring项目中用了这种解耦模式,经理对我刮目相看前言 不知道大家在项目中有没有遇到过这样的场景,根据传入的类型,调用接口不同的实现类或者说服务,比如根据文件的类型使用 CSV解析器或者JSON解析器,在调用的客户端一般都是用if else去做判断,比如类型等于JSON,我就用JSON解析器,那如果新加一个类型的解析器,是不是调用的客户端还要修改呢 阅读全文
posted @ 2023-01-09 10:53 JAVA旭阳 阅读(856) 评论(4) 推荐(1)
摘要:你知道微服务架构中的“发件箱模式”吗前言 微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败,您的系统可能会变得不一致。那针对这样的情况有什么好的方法或者设计保 阅读全文
posted @ 2023-01-07 10:10 JAVA旭阳 阅读(445) 评论(3) 推荐(1)
摘要:【架构设计】如何让你的应用做到高内聚、低耦合?前言 最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢? "高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计 阅读全文
posted @ 2023-01-06 13:50 JAVA旭阳 阅读(1539) 评论(0) 推荐(5)
摘要:【架构设计】你的应用该如何分层呢?前言 最近review公司的代码,发现现在整个代码层级十分混乱,一个service类的长度甚至达到了5000多行。而且各种分层模型DTO、VO乱用, 最终出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。 我们在吸取了阿里巴巴的分层规范以及网上的一些经验后,重新梳理总结了 阅读全文
posted @ 2023-01-05 10:22 JAVA旭阳 阅读(1604) 评论(5) 推荐(4)
摘要:5个接口性能提升的通用技巧前言 作为后端开发人员,我们总是在编写各种API,无论是为前端web提供数据支持的HTTP REST API ,还是提供内部使用的RPC API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,直到用户抱怨:“你的系统太糟糕了。” 我只是浏览网页。为什么这么慢 阅读全文
posted @ 2023-01-02 20:00 JAVA旭阳 阅读(2068) 评论(1) 推荐(4)