Vlor Blog

志不立,天下无可成之事。

Rust 之 Box 详解

深入理解Rust堆内存管理的基石:Box智能指针

概述 在Rust的内存安全模型中,Box<T>(通常称为”装箱”)是最基础也最常用的智能指针。它允许我们将数据存储在堆上,而栈上只保留一个指向堆数据的指针。这种机制在解决递归类型大小不确定、转移大型数据所有权以及实现trait对象等场景中发挥着关键作用。 Box的核心价值在于: 实现堆内存分配与自动释放 解决编译期类型大小不确定问题 允许值在不复制数据的情况下...

Rust 之 Cell 相关详解

"深入理解Rust内部可变性的轻量级解决方案:Cell与RefCell"

概述 在Rust的内存安全模型中,内部可变性是一种特殊的设计模式,它允许我们在持有不可变引用的情况下修改数据。 Cell<T> 作为实现这一模式的轻量级工具,通过值的复制/移动语义而非引用实现内部修改,为简单类型提供了高效的可变性解决方案。与 RefCell<T> 不同, Cell<T> 专为 Copy 类型优化,不提供运行时借用检查,因此具有更高的性能和...

Rust 之 Send 和 Sync 详解

"深入理解Rust并发安全的基石:Send和Sync trait"

概述 Send和Sync是Rust语言中保证并发安全的两个核心标记trait,它们在编译期就能防止数据竞争,是Rust无数据竞争并发编程的基石。 核心概念 什么是Send和Sync? Send: 表示类型的值可以安全地跨线程传递所有权 Sync: 表示类型的引用可以安全地在多个线程间共享 标记trait: 不包含任何方法,只用于编译期安全检查 数据竞争防护 Rust通过...

Spring Boot 之 MongoDB

"Spring Boot 之 MongoDB"

前段时间分享了关于Spring Boot中使用Redis的文章,除了Redis之后,我们在互联网产品中还经常会用到另外一款著名的NoSQL数据库MongoDB。 下面就来简单介绍一下MongoDB,并且通过一个例子来介绍Spring Boot中对MongoDB访问的配置和使用 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的...

Spring Boot 之 RabbitMQ

"Spring Boot 之 RabbitMQ"

很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合。 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景: 消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚集、消息的...

Spring Boot 之 Shiro

"Spring Boot 之 Shiro"

POM <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${shiro.version}</versi...

Spring Boot 之 Quartz

"Spring Boot 之 Quartz"

POM <dependencies> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</ve...

Spring Boot 之 Cache Redis

"Spring Boot 之 Cache Redis"

POM <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </depe...

Spring Boot 之 Cache Ehcache

"Spring Boot 之 Cache Ehcache"

POM <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> ...

Spring Boot 之 Web应用

"Spring Boot 之 Web应用"

静态资源访问 在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例:我们可以在src/main/resources/目录下创建stati...