自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 OAuth2.0四种授权模式以及Oauth2.0实战

OAuth2.0四种授权模式实现演示以及自定义授权模式。Oauth2.0具有多种授权许可机制协议:授权码许可机制、客户端凭据机制、资源拥有者凭据机制(密码模式)和隐式许可机制。

2022-04-11 00:33:29 18172 34

原创 分布式数据库架构

分布式数据库架构1、MySQL常见架构设计对于mysql架构,一定会使用到读写分离,在此基础上有五种常见架构设计:一主一从或多从、主主复制、级联复制、主主与级联复制结合。1.1、主从复制这种架构设计是使用的最多的。在读写分离的基础上,会存在一台master作为写机,一个或多个slave作为读机。因为在实际的情况下,读的请求量一般是远远大于写请求的。采用这种架构之后,当应用写入输入时,会把数据写入到master节点,然后由master节点将写入数据复制到slave节点上。缺点:master单

2022-04-08 23:42:26 9634 5

原创 Docker常见使用

Docker常见使用1、Docker安装## 下载阿里源repo文件$ curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo$ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum clean all &&

2022-04-08 23:18:16 2551

原创 设计原理-如何编写优雅的代码

设计原理前言:如何编写优雅的代码,以及如何提高代码的可读性、可扩展性、复用性、可维护性,这些都是我们在工作中需要注意的事项。接下来介绍SOLID、KISS、YAGNI、DRY、LOD等设计原理。SOLIDSOLID包含五个设计原理,分别是:单一职责原则(SRP:Single Responsibility Principle)开闭原则(OCP:Open Closed Principle)里式替换原则(LSP:Liskov Substitution Principle)接口隔离原则(ISP:In

2022-03-12 20:47:29 904

原创 构建区域/全域“数据银行”,充分发挥数据价值

在“数据银行”中,作为企业、个体工商户及个人用户可以将自己权属的数据存储在统一的数据银行【平台】,结合区块链等信息化技术手段,解决隐私问题,通过建立统一的市场制度来管理和监管数据交易合规性。履行数据银行职能,做好数据存储,深挖数据价值,通过授权将制定数据提供给第三方运营,获得投资收益。在数据银行中,储户只需要将自身权属的数据存储在数据银行,只要有人或者第三方调用或者查看,都需要支付相应的流量/费用,费用按照比例分给数据存储和加工方即“数据银行”、数据提供方即数据储户。

2024-03-01 12:00:50 367

原创 构建数据“积木工厂”,共创数据交易新未来

构建数据“积木工厂”,共创数据交易新未来。借助数据积木工厂,全民都可以参与数据交易,每一个人都可以是源数据、原材料的提供者,数据积木零件的生产者和数据积木模型的组装者。

2024-02-28 19:17:21 381

原创 StableDiffusion安装 【人工智能】

StableDiffusion安装教程

2023-12-28 23:31:09 426

原创 JeecgBoot单体搭建及部署保姆式教程

前言:本文主要是教不想看官方文档或者纯小白如何搭建和部署JeecgBoot单体项目。内容为本地环境搭建,以及如何使用docker、nginx进行部署上线。

2023-12-20 00:27:13 2879 1

原创 搭建单体Jeccg-Boot项目实战

5.设置redis密码config set requirepass ****(****为你要设置的密码)你可能会遇到的问题: 无法加载文件C:\Users\AppData\Roaming\npm\pnpm。浏览器访问:http://localhost:8080/jeecg-boot/进入mysql容器内/etc/mysql 找到my.cnf,在配置文件内添加。以下步骤请结合官方文档操作:https://help.jeecg.com/2.进入redis目录 cd /usr/local/bin。

2023-12-17 23:24:12 185

原创 MySql基础

​ 数据库(DataBase,DB):指长期保存在计算机的存储设备(硬盘)上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合. 还是以文件的方式存在服务器的电脑上的。​说白了就是数据的仓库, 用来持久化保存数据的.掌握什么是SQL(结构化查询语言),通过sql操作数据库(操作数据库,操作表,操作数据)SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。

2023-06-29 23:30:53 139 1

原创 一文读懂Zookeeper

集中式系统,集中式系统中整个项目就是一个独立的应用,整个应用也就是整个项目,所有的东西都在一个应用里面。部署到一个服务器上。布署项目时,放到一个tomcat里的。也称为单体架构原生Java API(不推荐使用)​ ZooKeeper 原生Java API位于org.apache.ZooKeeper包中​ ZooKeeper-3.x.x. Jar (这里有多个版本)为官方提供的 java APIApache Curator(推荐使用)

2023-06-29 23:27:50 7202

原创 一文读懂非关系型数据库Redis

知道什么是Redis以及Redis的应用场景​ Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库数据是保存在内存里面的字符串类型 string(最常用)散列类型 hash列表类型 list集合类型 set有序集合类型 sortedset​ string是redis最基本的类型,用的也是最多的,一个key对应一个value。一个键最大能存储512MB.​ Redis中hash 是一个键值对集合。

2023-06-29 23:27:05 262

原创 单例模式、多例模式、枚举、工厂模式

掌握枚举的定义和使用public enum 枚举名 {// 第一行都是罗列枚举实例,这些枚举实例直接写大写名字即可。实例 , 实例 , 实例 , . . .;UP , DOWN , LEFT , RIGHT } // 使用枚举 public class Test {/*概述:枚举是一种用来表示固定个数值的引用数据类型,例如性别,季节,方向等等这些数据都是有固定个数数值的格式:public enum 枚举名{枚举值,枚举值,枚举值,....规范: 枚举值的名称所有字母大写。

2023-06-29 23:25:45 137

原创 一文读懂线程安全

volatile关键字概述原子类概述在多线程程序中,使用了多把锁,造成线程之间相互等待.程序不往下走了。- 能够解释安全问题的出现的原因线程的调度是抢占式 , 导致一条线程在操作任务的时候 , 会被其他线程打断 , 造成 "数据混乱" - 能够使用同步代码块解决线程安全问题 synchronized(锁对象) {} 锁对象 : 1. 可以是任意类的对象 2. 多条线程要实现同步 , 那么这多条线程的锁对象要一致 - 能够使用同步方法解决线程安全问题。

2023-06-29 23:24:30 128

原创 一文读懂分布式锁

​ 在单机系统中,当多线程访问数据时,为了保证数据的正确性,我们一般都会采用加锁的方式,比较常见的synchronized或者ReentrantLock。他们都是由Java为我们提供的锁实现,能够让多个线程之间只能串行化执行,从而保证数据的正确性。​ 但是一旦将服务器从单机部署升级为多机部署后,则会发现Java提供的原生锁机制在多机部署下失效了。这是因为Java本身提供的锁,他们只对属于自己JVM里面的线程有效,对于其他JVM的线程是无效的。

2023-06-29 23:01:25 238

原创 红黑树转化过程

2)按照红黑树的性质4我们知道红黑树中黑结点的个数至少是红结点个数的两倍,所以新增结点的父亲结点是黑结点的概率比较大,如果新增结点的父节点为黑色,那么此时不需要再去进行任何调整操作,因此效率很高,所以新结点应该涂成红色。先把需要删除的结点110删除,然后这个时候需要交换兄弟结点140和父亲结点120的颜色,并且把父亲结点120涂成黑色,把兄弟结点的子节点150涂成黑色。比如下图,新插入结点是126,其父结点125为红色,其叔叔结点为空的黑色结点,而且插入结点是右结点,父结点是左结点。

2023-06-29 22:58:07 88

原创 性能优化--MySQL

​ ==使用explain关键字可以模拟优化器执行SQL查询语句,==从而知道MYSQL是如何处理SQL语句的。我们可以用执行计划来分析查询语句或者表结构的性能瓶颈​ ==索引(Index)是帮助MySQL高效获取数据的数据结构。==在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高效的查找算法,这种数据结构就是索引。​ 一般来说索引本身也很大,不可能全部存储在内存中,因此往往以索引文件的形式存放在磁盘中.。我们平常所说的索引,

2023-06-29 22:57:32 127

原创 数据结构到Java常用集合

1)ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。2)该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。3)ArrayList的用法和Vector向类似,但是Vector是一个较老的集合,具有很多缺点,不建议使用。

2023-06-29 22:56:47 264

原创 深入理解JVM

​ 在 HotSpot JVM 中,永久代( ≈ 方法区)中用于存放类和方法的元数据以及常量池,比如Class 和 Method。每当一个类初次被加载的时候,它的元数据都会放到永久代中。​ 永久代是有大小限制的,因此如果加载的类太多,很有可能导致永久代内存溢出,即OutOfMemoryError,为此不得不对虚拟机做调优。​ 那么,Java 8 中 PermGen 为什么被移出 HotSpot JVM 了?官网给出了解释:http://openjdk.java.net/jeps/122。

2023-06-29 22:56:14 171

原创 JUC并发编程【中】

​ 在程序中可以通过synchronized实现锁功能,对于它可以称为内置锁,是由Java语言层面直接为我们提供使用的。可以在程序中隐式的获取锁。但是对于它的使用方式是固化的,只能先获取再释放。而且在使用的过程中,当一个线程获取到某个资源的锁后,其他线程再要获取该资源则必须要进行等待。synchronized并没有提供中断或超时获取的操作。​ 为了解决这些问题,所以才出现了显示锁。在显示锁中其提供了三个很常见方法:lock()、unLock()、tryLock()。

2023-06-28 20:43:43 168

原创 JUC并发编程【上】

​ 进程可以理解为就是应用程序的启动实例。如微信、Idea、Navicat等,当打开它们后,就相当于开启了一个进程。每个进程都会在操作系统中拥有独立的内存空间、地址、文件资源、数据资源等。进程是资源分配和管理的最小单位[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k6S2rDxS-1687955915292)(assets/image-20200723204916791.png)]

2023-06-28 20:41:45 227

原创 RabbitMQ 高级特性

实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。

2023-06-28 20:25:33 266

原创 RabbitMQ入门

RabbitMQ1. 消息中间件概述1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中

2023-06-28 20:23:50 221

原创 ElasticSearch提升

ElasticSearchElasticSearch Java客户端1.1 客户端开发环境搭建创建Maven工程导入坐标<dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.6.8&

2023-06-28 20:20:47 130

原创 ElasticSearch提升

ElasticSearchElasticSearch Java客户端1.1 客户端开发环境搭建创建Maven工程导入坐标<dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.6.8&

2023-06-28 20:08:21 82

原创 Elasticsearch入门

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。IK分词器3.0的特性如下:1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。

2023-06-28 20:06:41 161

原创 SpringCloud入门

Spring Cloud从技术架构上降低了对大型系统构建的要求和难度,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但Spring Cloud也不是没有缺点,小型独立的项目不适合使用。Spring Cloud是一系列分布式微服务技术的有序整合,把非常流行的微服务的技术整合到一起。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发。

2023-06-28 20:03:09 188

原创 Linux基础

1.Linux的概述Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统。Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。

2023-06-28 19:53:29 53

原创 SpringBoot基础

SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

2023-06-28 17:06:18 199

原创 一文教你如何编写出优雅代码

如何编写优雅的代码,以及如何提高代码的可读性、可扩展性、复用性、可维护性,这些都是我们在工作中需要注意的事项。接下来介绍SOLID、KISS、YAGNI、DRY、LOD等设计原理。

2023-06-27 00:04:38 294

原创 Mybatis入门【三】

1. 半成品,2. 饭店:买菜,油盐酱醋-- 洗菜 -- 炒菜--做饭 -- 刷锅,洗碗MyBatis是一款优秀的持久层框架,它可以与Java程序无缝集成,提供了一种简单而灵活的方式来访问数据库。本文将介绍MyBatis的基本概念、使用方法和一些最佳实践。一、MyBatis基本概念Mapper:MyBatis中的映射器(Mapper)是接口,用于定义SQL语句的映射关系。它通常包含一组方法,每个方法对应一个SQL语句,这些方法的参数类型应该与SQL语句中的参数类型相对应。

2023-06-27 00:04:29 419

原创 一文学会如何使用Docker

实际上,在运行容器的时候,镜像地址后面跟的命令等于是覆盖了原有的容器的CMD命令,因此,执行的这些命令在容器内部就是1号进程,若该进程不存在了,那么容器就会处于退出的状态,比如,宿主机中执行。镜像的运行时,可以对外提供服务。测试1:docker run -i --name ubuntul2 ubuntu:19.10。测试1:docker run -t --name ubuntul3 ubuntu:19.10。测试1:docker run -d --name ubuntu1 ubuntu:19.10。

2023-06-27 00:04:18 406

原创 Myabtis入门【一】

框架的介绍介绍mybatis框架JDBC于Mybatis框架的比较自定义Mybatis框架mybatis框架的快速入门1. 半成品,2. 饭店:买菜,油盐酱醋-- 洗菜 -- 炒菜--做饭 -- 刷锅,洗碗MyBatis是一款优秀的持久层框架,它可以与Java程序无缝集成,提供了一种简单而灵活的方式来访问数据库。本文将介绍MyBatis的基本概念、使用方法和一些最佳实践。一、MyBatis基本概念Mapper:MyBatis中的映射器(Mapper)是接口,用于定义SQL语句的映射关系。

2023-06-27 00:03:58 132

原创 一文学会ElasticSearch-CURD操作及高亮查询

Elasticsearch是一个开源的分布式、RESTful风格的搜索和分析引擎,它可以用于全文搜索、结构化搜索以及分析。Elasticsearch最初是由Apache软件基金会开发的,现在已成为一个独立的公司,名为Elastic。

2023-06-27 00:03:31 481

原创 【Java入门】注释、关键字、常量、变量、数据类型

二、在算术运算符的操作中,如果算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。赋值运算符包括:赋值=、加后赋值+=、减后赋值-=、乘后赋值*=、除后赋值/=、取余后赋值%=将取值范围大的类型强制转换成取值范围小的类型(数据类型 变量名 = (数据类型)被转数据值)//自动转换 取值范围小的类型自动提升为取值范围大的类型。将取值范围小的类型自动提升为取值范围大的类型(数据类型 变量名 = 被转数据值)2、整个表达式的类型自动提升到表达式中最高等级操作数同样的类型。

2023-06-27 00:02:50 234

原创 OAuth2.0四种授权模式及实战

Oauth2.0具有多种授权许可机制协议:授权码许可机制、客户端凭据机制、资源拥有者凭据机制(密码模式)和隐式许可机制。在源码中即可看到四种模式的实现类,还有一个RefreshTokenGranter则是刷新令牌,用于access_token失效时刷新过期时间。假如现在我需要实现手机验证码登录或者微信扫码登录等功能的时候,我们该如何处理呢?我们可以继承AbstractTokenGranter实现自定义授权模式。手机短信验证码模式。

2023-06-27 00:02:40 7143 4

原创 Mybatis入门【二】

1. 半成品,2. 饭店:买菜,油盐酱醋-- 洗菜 -- 炒菜--做饭 -- 刷锅,洗碗MyBatis是一款优秀的持久层框架,它可以与Java程序无缝集成,提供了一种简单而灵活的方式来访问数据库。本文将介绍MyBatis的基本概念、使用方法和一些最佳实践。一、MyBatis基本概念Mapper:MyBatis中的映射器(Mapper)是接口,用于定义SQL语句的映射关系。它通常包含一组方法,每个方法对应一个SQL语句,这些方法的参数类型应该与SQL语句中的参数类型相对应。

2023-06-27 00:01:59 147

原创 【Java入门】final关键字、static关键字、内部类的认识

建数据库表后使用事务回滚出现问题:以用户转账为例:数据库建表create table account(id int PRIMARY KEY auto_increment,username varchar(20),money int);​​​​​​java程序(转账程序):import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Stat

2023-06-27 00:01:34 501

原创 【Java入门】方法及方法重载

方法:是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集1、定义格式:修饰符 返回值类型 方法名(参数){方法体;返回值;

2023-06-27 00:01:03 1461

原创 Spring入门【总】

org.springframework.orm.hibernate5.HibernateTransactionManager: 在hibernate环境下使用rg.springframework.jdbc.datasource.DataSourceTransactionManager: 在jdbcTemplate,mybatis(ibatis)环境下使用。

2023-06-26 00:16:21 481

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除