- 博客(110)
- 资源 (3)
- 收藏
- 关注
原创 控制反转和依赖注入
IOC(Inversion of Control,控制反转)是面向对象编程中的一种设计思想,将程序中创建对象的控制权交给外部环境(Spring 框架、IoC 容器 )来管理,以便降低计算机代码之间的耦合度。IoC 容器是用来实现 IoC 的载体,负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。在传统的编程模式中,程序员负责创建和管理对象及其依赖关系,而在控制反转的设计中,这些控制权被转移到外部容器或框架,程序员只需关注业务逻辑,具体的对象创建和管理由容器负责。例如,现有类 A 依赖于类 B。
2024-09-23 16:42:12 654
原创 Java 并发编程 —— AQS 抽象队列同步器
AQS 是 JUC 提供的一个用于构建锁和同步容器的基础类,用于减少由于无效争夺导致的资源浪费和性能恶化。JUC 包内的许多类都是基于 AQS 构建, 例如 ReentrantLock、Semaphore、CountDownLatch、ReentrantReadWriteLock、FutureTask 等。AQS 解决了在实现同步容器时设计的大量细节问题。AQS 的核心思想是, 如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。
2024-09-20 20:05:55 1072
原创 Sentinel 使用案例详细教程
从基础配置开始,介绍了如何在 Spring Cloud 项目中集成 spring-cloud-starter-alibaba-sentinel,并展示了如何定义降级规则,例如基于错误比例进行熔断。通过代码示例,讲解了 @SentinelResource 的使用,包括 blockHandler 和 fallback 的区别,分别处理限流异常和业务异常。
2024-09-10 22:57:19 870
原创 OpenFeign 使用案例教程
运行成功,稍等几秒启动时间,浏览器输入 http://localhost:8848/nacos/index.html 查看控制台。在运行所有微服务后,运行 http://localhost:9000/order/create。这些微服务将通过 Nacos 进行服务注册和发现,它们之间有特定的关系和交互方式。由于这些微服务的代码基本类似,本文只展示如何创建 Order Service。, 不同微服务之间的配置基本上差不多。
2024-09-09 20:30:17 1005
原创 Idea 创建 Maven项目的时候卡死
是用来创建项目的模板。它允许开发人员使用预定义的结构、配置和依赖项来生成新项目。使用 Archetype 有助于标准化项目并通过提供遵循特定设计的起点来实施最佳实践。在使用 Internal 这种类型的 CataLog 的时候,maven-archetype-plugin 在 generate 项目模板的时候卡死。在不同的上下文中指的是一个有组织的项目、实体或组件的集合。它通常用于结构化数据、项目或资源,以便于导航、发现和管理。就是存放 Archetype 数据的文件。
2024-09-09 11:03:43 827
原创 设计模式——建造者模式
建造者模式(Builder Pattern)也叫做生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2024-09-04 18:09:45 1078
原创 设计模式 —— 单例模式
单例模式(Singleton Pattern)是一个比较简单的模式,其定义如下:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
2024-09-04 16:50:07 627
原创 RocketMQ Dashboard 报错:org.apache.rocketmq.remoting.execption.connect to [rmqnamesrv:9876] failed
RocketMQ Dashboard 报错:org.apache.rocketmq.remoting.execption.connect to [rmqnamesrv:9876] failed
2024-09-03 16:29:26 330
原创 分布式基础理论——CAP理论和BASE理论
由于分布式系统在CAP理论中最多只能同时满足两个特性,在实际场景中,大多数分布式系统会选择AP方案,即牺牲强一致性以确保系统的可用性和分区容错性。最终一致性允许多个节点的数据在短时间内存在差异,但经过一段时间后,这些数据会自动同步,最终达到一致的状态。因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构。因为 CA 架构的系统不再是标准的分布式系统,主数据库和从数据库不在进行同步。,C 和 A 是可以同时满足的,因为此时无需考虑分区容错性(P)的影响。
2024-08-20 17:13:44 1444
原创 Mybatis框架——使用案例详细教程(mybatis-spring-boot-starter依赖)
Mybatis框架使用案例详细教程, 利用 mybatis-spring-boot-starter 依赖来查询数据库
2024-08-14 20:27:48 976
原创 控制反转和依赖注入
IOC (Inversion of Control,控制反转)是面向对象编程中的一种设计思想,将程序中创建对象的控制权交给外部环境(Spring 框架、IoC 容器 )来管理,以便降低计算机代码之间的耦合度。IoC 容器是用来实现 IoC 的载体,负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。在传统的编程模式中,程序员负责创建和管理对象及其依赖关系,而在控制反转的设计中,这些控制权被转移到外部容器或框架,程序员只需关注业务逻辑,具体的对象创建和管理由容器负责。
2024-08-11 22:17:57 380
原创 拓扑排序及其具体实现
设GVEG=(V,E)GVE是一个具有nnn个顶点的有向无环图(DAG, Directed Acyclic Graph)VVV中的顶点序列 ”v1v2vnv1v2vn“ 称为一个拓扑序列(topological sequence)。若vivj<v_i,v_j>vivj是图中的一条边或者从顶点viv_ivi到顶点vjv_jvj有路径,则在该拓扑序列中顶点viv_ivi必须排在顶点vjv_j。
2024-08-10 22:36:08 784
原创 Java并发编程——CAS算法定义和使用案例
CAS( Compare And Swap) 是一种保障变量操作原子性的无锁算法,可以在多个线程之间实现对共享数据的安全更新。
2024-08-07 17:58:52 1000
原创 异步通信方式的两种消息传输模型
异步通信是分布式系统中子模块远程通信的一种方式,主要通过中间件来实现。异步通信的消息传输模型主要有点对点模型和发布订阅模型。
2024-07-28 15:35:04 551
原创 面向切面编程 AOP
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在将横切关注点(cross-cutting concerns)从业务逻辑代码中分离出来,以提高代码的模块化和可维护性。横切关注点是指那些在多个模块中都会出现的关注点,例如日志记录、安全检查、事务管理等。
2024-07-27 21:27:16 400
原创 Java 注解概述和自定义注解案例
注解是元数据的一种形式,它提供的数据不是程序本身的一部分。注解对它们注释的代码的操作没有直接影响。举个简单的例子,系统上有一个sm.png文件,这个文件才是我们真正需要的数据本身,而这个文件的属性则可以称之为sm.png的元数据,是用来描述 png 文件的创建时间、修改时间、分辨率等信息的,这些信息无论是有还是没有都不影响它作为图片的性质,都可以使用图片软件打开。注解的生效依赖于它们被解析的方式编译期直接扫描:编译器在编译 Java 代码时会扫描对应的注解并进行相应处理。运行期通过反射处理。
2024-07-26 15:59:51 807
原创 什么是Stream流
Stream API 是 Java 8 引入的一个用于处理集合数据的新抽象。它提供了一种更便利、更灵活的方式来操作集合,支持函数式编程的风格。Stream API 的目标是通过更简洁的语法和更高效的执行方式,使得对集合的操作更加方便和优雅。
2024-07-11 22:07:18 1170
原创 map-filter-reduce 算法在 Java 中的实现
map-filter-reduce 是处理数据的非常经典的算法(也是一种常用于集合处理的编程范式),可以在函数式编程中高效地对集合进行转换和处理。
2024-07-10 19:46:13 761
原创 JavaDoc的最佳实践
JavaDoc 是一款能根据源代码中的文档注释来产生 HTML 格式的 API 文档的工具。文档注释以/**开头、以*/结尾,并且每行要以星号开头。文档注释覆盖范围包括:类、接口、方法、构造器、成员字段,如果写在其他位置,比如函数内部,被视为无效的文档注释。文档注释支持 HTML 语法和 辅助标签。
2024-07-10 19:40:30 1395
原创 信息安全三要素
信息安全三要素,通常被称为CIA三要素,是确保信息和系统安全的核心原则。这三要素分别是:机密性(Confidentiality):保护数据不被未授权访问或泄露。完整性(Integrity):确保数据在传输和存储过程中没有被未经授权的篡改。可用性(Availability):确保资源和信息在需要时能够被合法用户访问。
2024-07-07 22:14:25 1168
原创 函数式接口的定义及常见类型
函数式接口是一个具有且仅有一个抽象方法(Abstract Method)的接口。在Java中,函数式接口被用于支持函数式编程的特性,允许将函数作为一等公民来传递和使用。只包含一个抽象方法,但可以包含默认方法和静态方法。可以使用注解进行标识,以确保它符合函数式接口的规范。(该注解不是必需的)这种接口可以通过Lambda表达式、方法引用来表示简洁的实现方式。函数式接口的设计允许将行为作为参数传递,使得代码更加简洁和可读。
2024-07-07 22:08:16 989
原创 进程、程序、应用程序之间的关系
程序与进程:程序是代码和指令的集合,而进程是程序在执行时的实例。一个程序可以同时或在不同时间点启动多个进程。应用程序与程序:应用程序是更高层次的概念,通常包含多个程序模块。一个复杂的应用程序可能由许多不同的程序和脚本组成。应用程序与进程:应用程序在运行时会生成一个或多个进程。例如,一个Web浏览器(应用程序)可能启动多个进程来处理不同的标签页或插件。
2024-07-05 20:39:11 495
原创 函数式编程
函数式编程(Functional Programming,简称FP)是一种编程范式,它将计算视为数学上的函数运算,强调函数的应用而非改变状态和数据。函数式编程的核心理念是使用纯函数和不可变数据结构,通过函数组合来构建程序,从而提高代码的可读性、可维护性和并发性。函数式编程可以被视为声明式编程的一种。
2024-07-04 21:17:14 559
原创 声明式编程和命令式编程
命令式编程(Imperative Programming)是一种编程范式,它通过明确的步骤和指令告诉计算机如何执行任务。这种编程风格非常详细,程序员需要明确地指定计算机的操作顺序。声明式编程(Declarative Programming)是一种编程范式,强调描述“做什么”而不是“怎么做”。在声明式编程中,程序员定义预期的结果或行为,而不是编写实现这些结果的具体步骤。编译器或解释器负责确定如何实现这些结果。
2024-07-04 21:15:52 613
原创 分布式系统中的经典思想实验——两将军问题和拜占庭将军问题
分布式系统中,两将军问题和拜占庭将军问题是两个经典的理论问题,用来描述分布式系统中节点之间通信和一致性挑战。理解这些问题有助于认识分布式系统的可靠性和一致性难题。
2024-06-16 22:56:30 1025
原创 分布式系统与集群:区别与联系
分布式系统和集群是现代计算领域中常见的两种架构,它们在设计目标、应用场景和技术实现上有显著的区别,同时也有一些共同点。分布式系统通过将一个大型任务分解成多个子任务,分配到不同的节点进行并行处理,以提高处理能力和效率,并实现高可用性和扩展性。集群则通过部署多个相同的系统实例,均衡负载,提高性能和可靠性。
2024-06-16 17:02:58 561
股票交易项目(Java实现).zip
2021-07-01
软件综合设计报告.rar
2021-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人