10 2023 档案
摘要:https://zhuanlan.zhihu.com/p/570285759
阅读全文
摘要:@Cacheable 是 Spring Framework 中的一个注解,它可以应用在方法上,用于声明该方法的结果可以被缓存起来,以便后续的调用可以直接返回缓存中的结果,而不必真正执行方法的代码。 @Cacheable 注解中的参数有以下几个: value:缓存的名称,可以是一个字符串数组,表示该方
阅读全文
摘要:RabbitMQ是一个开源的消息中间件,采用AMQP协议来实现消息的生产、消费和路由。它主要由以下几个组件构成: Producer:消息生产者,即发送消息的应用程序。 Exchange:消息交换机,用于接收生产者发送的消息,并将其路由到对应的队列中。 Queue:消息队列,用于存储消息,等待消费者来
阅读全文
摘要:抽象类和接口都是Java中用于实现多态的机制,它们的相同点和不同点如下: 相同点: 都不能被实例化,只能被继承或者实现。 都可以包含抽象方法,子类或者实现类必须实现这些抽象方法。 都可以被用于实现多态。 不同点: 抽象类可以包含非抽象方法,而接口只能包含抽象方法。 子类只能继承一个抽象类,但是可以实
阅读全文
摘要:分布式缓存可以使用Redis或者Redisson实现,具体选择哪个取决于你的具体需求和场景。 如果你的场景比较简单,只需要一个高效的缓存系统,那么使用Redis就足够了。Redis是一个非常流行的内存数据库,具有高性能、高可用性、丰富的数据结构和灵活的配置等优点。在分布式缓存方面,Redis通过集群
阅读全文
摘要:在Java中,定义一个空接口作为父类是有意义的,因为它可以作为一个标记接口(Marker Interface)。标记接口是指没有任何方法的接口,它仅仅是用来标记一个类是否具有某种特定的能力或属性。例如,Java中的Serializable接口就是一个标记接口,它用来标记一个类是否可以被序列化。如果一
阅读全文
摘要:策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。它定义了一系列算法,将每个算法封装起来并使它们可以相互替换。策略模式使算法的变化独立于使用算法的客户端。 在策略模式中,我们有一个上下文对象,该对象包含一个指向策略对象的引用。策略对象实现了一个公共接口,该接口定义了所有策略对象都必须实现的
阅读全文
摘要:MapStruct是一个Java注解处理器,它可以自动生成类型安全的Java Bean映射代码。MapStruct的主要目的是简化Java Bean之间的映射,它通过注解来指定Java Bean之间的映射规则,然后自动生成映射代码。 在MapStruct中,有几个常用的注解: @Mapper:用于指
阅读全文
摘要:1.MetaObjectHandler接口方法 Mybatis中的MetaObjectHandler是一个接口,用于为实体对象的属性自动赋值。它有以下几个方法: insertFill(MetaObject metaObject):在执行插入操作时自动填充实体对象的属性值。 updateFill(Me
阅读全文
摘要:ObjectMapper和ObjectSerializer ObjectMapper和ObjectSerializer是两个常用的Java序列化工具,它们的主要区别在于序列化和反序列化的方式以及支持的数据格式。 ObjectMapper是Jackson库中的一个类,用于将Java对象序列化为JSON
阅读全文
摘要:异常信息: "unexpected error: Type definition error: [simple type, class java.time.LocalDateTime]; nested exception is com.fasterxml.jackson.databind.exc.I
阅读全文
摘要:WebMvcConfigurer是Spring MVC框架中的一个接口,它提供了一些方法来配置Spring MVC的行为。它是一个回调接口,允许开发人员在Spring MVC配置过程中插入自己的逻辑。 下面是一些WebMvcConfigurer接口中常用的方法: addViewControllers
阅读全文
摘要:DDD(Domain-Driven Design,领域驱动设计)是一种软件开发方法论,它注重对业务领域的深入理解,并将领域模型作为软件设计的核心。在DDD中,领域模型是通过对业务领域的分析和抽象而得到的,它是对业务领域中的概念、规则、行为等的描述。 领域模型的设计是DDD中的一个重要环节,它需要开发
阅读全文
摘要:http://easypoi.mydoc.io/
阅读全文
摘要:如果多个接口同时调用同一个方法,会增加该方法的负载和并发量。这可能会导致性能问题,特别是当方法需要执行大量计算或涉及到I/O操作时。 为了避免性能问题,可以采取以下措施: 缓存结果:对于一些计算结果比较稳定的方法,可以将结果缓存起来,避免重复计算。 异步执行:对于一些需要进行I/O操作的方法,可以采
阅读全文
摘要:在大多数情况下,HTTP请求后端接口时会在服务器端创建一个新的线程来处理该请求。这是因为HTTP是基于请求/响应模型的,每个请求都需要独立处理。 当多个接口同时调用一个方法时,该方法的性能可能会受到影响,具体取决于该方法的实现和服务器的硬件配置。如果该方法是线程安全的,并且服务器有足够的资源来处理多
阅读全文
摘要:MyBatis 中可以使用 QueryWrapper 类来构造 SQL 查询语句。要进行表左关联查询,可以使用 QueryWrapper 的 join 方法,并指定关联的表名和关联条件。同时,可以使用 QueryWrapper 的其他方法来添加其他查询条件,例如 eq、like、in 等。 以下是一
阅读全文
摘要:Mybatis-Plus提供了一种方便的方式来使用乐观锁进行更新,只需要在实体类中添加一个版本号字段,并在更新时指定该字段即可。 首先,在实体类中添加一个版本号字段,例如: public class User { private Long id; private String name; priva
阅读全文
摘要:在 MyBatis-Plus 的 XML 文件中,可以使用 OGNL 表达式来判断输入的 list 是否为空。具体方法如下: <select id="selectByIds" resultType="com.example.entity.User"> SELECT * FROM user WHERE
阅读全文
摘要:@JsonFormat和@DateTimeFormat都是用于控制Java对象在序列化成JSON字符串或从JSON字符串反序列化成Java对象时的日期格式。 @JsonFormat是Jackson库提供的注解,可以用于控制JSON序列化的日期格式。它支持多种日期格式,可以设置日期的输出格式、时区、l
阅读全文
摘要:Feign是一个基于HTTP的客户端,它使用了Java的注解来简化HTTP API的开发。在Feign中,异步调用可以通过使用Java的CompletableFuture来实现。CompletableFuture是Java 8中引入的一个异步编程工具,它可以让开发者以更加简洁的方式编写异步代码。 在
阅读全文
摘要:Feign是一个Java HTTP客户端库,它简化了使用HTTP API的过程。当使用Feign调用远程API时,有时会遇到连接超时或请求失败的情况。为了解决这些问题,可以使用Feign的重试功能。 Feign的重试功能可以通过以下步骤来实现: 添加Feign的retry依赖 在pom.xml文件中
阅读全文
摘要:在Java中,可以使用java.util.Date和java.time.LocalDateTime类来表示日期和时间。如果需要将Date转换为LocalDateTime,可以使用toInstant()方法将Date转换为Instant,然后再使用atZone()方法将其转换为ZoneId,最后使用t
阅读全文
摘要:如果两个服务不在同一个注册中心,这时可以通过使用Spring Cloud的服务发现功能来实现。具体地,您可以使用@LoadBalanced注解为RestTemplate创建一个负载均衡的客户端,并使用服务名称作为URL。 例如,假设您有两个注册中心,一个名为registry1,另一个名为regist
阅读全文
摘要:正向代理和反向代理都是代理服务器的应用场景,它们的主要区别在于代理的方向不同。 正向代理:正向代理是一种代理服务器,它代表客户端向目标服务器发送请求。客户端向代理服务器发送请求,代理服务器再将请求转发给目标服务器,目标服务器将响应返回给代理服务器,代理服务器再将响应返回给客户端。正向代理的主要作用是
阅读全文
摘要:@FeignClient是Spring Cloud中的一个注解,用于定义一个声明式的REST客户端。它可以让我们像调用本地方法一样调用远程服务。 @FeignClient 注解有以下属性: name:指定 FeignClient 的名称,用于创建 FeignClient 的 Spring Bean,
阅读全文
摘要:日志链路追踪是一种用于跟踪分布式应用程序中请求的处理过程的技术,可以帮助开发人员诊断和解决问题。以下是一些常见的日志链路追踪实现方式: OpenTracing:这是一个开放标准,它提供了一组API和工具,可以帮助开发人员在应用程序中实现日志链路追踪。 Zipkin:这是一个开源的日志链路追踪系统,它
阅读全文
摘要:Redison是一个基于Java的开源分布式缓存系统,它提供了多种数据结构和算法,如分布式锁、分布式Map、分布式Set、分布式List等,可以用于构建高性能、高可用性的分布式应用。Redison的主要特点包括: 支持多种数据结构和算法:Redison支持多种数据结构和算法,包括分布式锁、分布式Ma
阅读全文
摘要:Apache Camel是一个开源的Java框架,用于在不同的应用程序之间进行消息传递和集成。它提供了一种简单而强大的方式来连接不同的系统,包括数据库、Web服务、消息代理、文件系统等等。Apache Camel基础知识: 路由(Route):路由是指将消息从一个端点传递到另一个端点的过程。在Apa
阅读全文