单例模式 这个模式的核心目的是控制实例的创建,确保系统内存中一个类只有一个实例。该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。 单例模式的关键点: 实现单例模式的方式: 1. 饿汉式 饿汉式,顾名思义,类一加载就创建对象。容易产生垃圾对象,浪费内存空间,适用于实例创建开销较小的情况。 public class EagerSingleton { // 私有构造方法 private EagerSingleton() {}
2024-11-25从零开始封装自己的starter并且引入到其他项目中使用 简介 本文将介绍如何从零开始封装自己的starter并且引入到其他项目中使用 为什么要自己封装starter? 这样可以对spring以及其他第三方提供的starter做二次封装或者封装一些自己需要的内容提供给其他项目使用,提高项目级的代码复用性。 一、创建一个新的spring-boot项目 首先我们需要新建一个spring-boot项目,为了防止发生maven依赖问题,我们这里不选择任何spring提供的组件,如果添加了请确保引用的项目
2024-11-25前言 后端在写对外的API接口时,一般会对参数进行签名来保证接口的安全性,在设计签名算法的时候,主要考虑的是这几个问题: 1. 请求的来源是否合法 2. 请求参数是否被篡改 3. 请求的唯一性 我们的签名加密也是主要针对这几个问题来实现 设计 基于上述的几个问题,我们来通过已下步骤来实现签名加密: 1. 通过分配给APP对应的app_key和app_secret来验证身份 2. 通过将请求的所有参数按照字母先后顺序排序后拼接再MD5加密老保证请求参数不被篡改 3. 请求里携带时间戳参数老保证请
2024-11-25package main import ( "fmt" "image" "image/color" "image/draw" "image/png" "io/ioutil" "math/rand" "os" "time" "github.com/golang/freetype" "github.com/golang/freetype/truetype" ) func main() { rand.Seed(time.Now().UnixNano()) code :=
2024-11-25本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。 系统程序文件列表 开题报告内容 研究背景 随着城市化进程的加速和居民生活水平的提高,小区作为城市生活的基本单元,其物业管理水平直接关系到居民的生活质量与幸福感。然而,传统的小区物业管理方式往往存在效率低下、信息不透明、服务响应慢等问题,难以满足现代小区管理的需求。特别是在业主信息管理、停车位分配、物业维修处理、费用收缴及房屋信息管理等方面,传统方法显得尤为力不从心。因此,开发一套集成化、智能化
2024-11-25一、Golang基础: 1. Golang有哪些数据类型 布尔: bool 数字类型: int[8、16、32、64] uint[8、16、32、64] uintptr:无符号整型,用于存放一个指针 byte: 字节, uint8的别名,通常用来存储ASCII字符以及二进制数据。 rune: int32别名,用于表示Unicode字符。这是因为Unicode字符可能需要多个字节来表示,因此需要更多的存储空间; 字符串类型: string 派生类型: 指针: pointer
2024-11-25OData Web API 是一个开放标准的协议,用于创建和使用基于 RESTful 的 Web API。它允许开发人员通过统一的方式来发布、查询、操作和管理数据资源。 OData Web API 基于 OData 协议,该协议定义了一组规范和约定,用于建立与数据源交互的标准化方式。它支持使用标准 HTTP 方法(如 GET、POST、PUT、DELETE)对数据资源进行操作,同时还提供了查询、过滤、排序、分页等功能,使得客户端可以以统一的方式访问和操作数据。 使用 OData Web API
2024-11-25BigDecimal通常可以用来金额保存计算,经常遇到保留小数位的问题。 通过调用setScale(int newScale, int roundingMode)传入保留小数位,舍入模式两个参数获取新的BigDecimal。 源码是总共有8种,按源码传入的参数对应int值分为0-7,简单记忆0-5可以分成两两对应,6是向两端最近靠近,7是不符合精确就抛出异常。以下介绍8种roundingMode的用法: 0.BigDecimal.ROUND_UP 保留X位,X位始终进位,无论X位后是多大。如:
2024-11-251 引言 最近在使用Sharding-JDBC实现项目中数据分片、读写分离需求,参考官方文档()感觉内容庞杂不够有条理,重复内容比较多;现结合项目应用整理笔记如下供大家参考和自己回忆使用; 在实现基于分布式数据库的应用系统ShardingShpere系列产品还是相当不错和成熟的,本文重点讲述其第一款产品Sharding-JDBC的快速使用。 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Shar
2024-11-25线程是什么? 1.1概念 1.1.1 线程是什么? 1.1.2 为什么要有线程 “并发式编成”已经成为了编成界的“刚需”单核 CPU 的发展遇到了瓶颈. 要想提⾼算⼒, 就需要多核 CPU. ⽽并发编程能更充分利⽤多核 CPU资源.有些任务场景需要 “等待 IO”, 为了让等待 IO 的时间能够去做⼀些其他的⼯作, 也需要⽤到并发编程.重点:进程虽然可以进程并发编成,但是线程比进程更轻量。 其次, 虽然多进程也能实现 并发编程, 但是线程⽐进程更轻量, 创建线程比创建进程更快 销毁线程比销
2024-11-25