自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单说说mysql中的sql执行流程

用自己的话来说就是,首先进行查询缓存,缓存中查询到结果则直接返回,若缓存中查询不到结果,sql语句就要进入解析器进行语法解析,生成解析树。得到解析树后又要经过优化器进行优化得到查询计划,最后进入执行器执行查询计划,返回查询结果并且写入缓存。

2024-01-19 01:19:46 371 1

原创 并发编程之CAS

再次强调,由于CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程中不允许被中断,也就是说CAS是一条CPU的原子指令,不会造成所谓的数据不一致问题。CAS是实现自旋锁的基础,CAS利用CPU指令保证了操作的原子性,以达到锁的效果,至于自旋锁---字面意思自己旋转。是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,当线程发现锁被占用时,会不断循环判断锁的状态,直到获取。题目:实现一个自旋锁,借鉴CAS思想。

2023-12-26 19:15:47 833

原创 浅谈线程中断

一个线程不应该由其他线程来中断或者停止,应该由线程自己自行停止。Java中没有办法立即停止线程,但是Java提供了一种用于停止线程的协商机制--中断机制,也叫中断标识协商机制。中断只是一种协作协商机制,中断的过程由程序员自己实现。若想要中断一个线程,你需要手动调用改线程的interrupt方法,该方法给当前线程的中断标识设置为true,接着你需要写代码检测中断标识,根据当前线程的中断标识自行决定具体要做什么。

2023-12-25 17:22:38 411

原创 浅谈悲观锁与乐观锁

只有在更新数据的时候才会去判断,之前有没有别的线程操作过这个数据。如果这个数据已经被其他线程被更新,则会根据不同的实现方式进行不同的操作。比如放弃修改,重试抢锁。在Java中sychronized关键字或者Lock的实现类都是悲观锁,悲观锁的使用场景,适合使用在写操作比较多的场景。悲观锁比较悲观,认为在使用数据的时候,一定会有别的线程来修改数据,因此在获取到数据后会先加锁,确保数据不会被别的线程给修改。乐观锁比较乐观,认为在使用数据的时候,不会有其他线程来修改数据,不会添加锁。1.版本号version。

2023-12-24 21:14:30 375

原创 云服务器使用docker安装elasticsearch,并且添加ik分词器

首先得下载好ik分词器,下载好分词器后,解压后并且解压出来的文件上传到服务器上的一个自定义目录下,这里我放到/usr/local/es/ik目录下,然后进入es容器内部,创建ik文件夹,再把解压后的ik分词器资源文件复制到es容器的ik文件夹下,最后重启es即可配置好ik分词器。4.退出es容器,在外部复制云服务器/usr/local/es/ik目录下的所有文件到es容器内部的ik文件夹下。到此es就安装成功了,然后我们来给es添加ik分词器插件。2.拉取es镜像,这里我们选择7.3.1版本的镜像。

2023-12-20 15:47:29 418

原创 阿里云服务器使用Docker安装mysql,redis,minio,配置基础环境教程

这里我们启动容器时设置mysql登录密码为123456,你也可以自定义自己想设置的密码,修改MYSQL_ROOT_PASSWORD=再新建一个文件夹 /usr/local/mysql/data和/usr/local/mysql/conf/my.cnf配置文件。访问方式:你的阿里云服务器ip地址:9090,进入minio的界面,输入用户名或密码后可以访问。MySQL这里的版本我们选择5.7,首先第一步就是拉取镜像。这里我们拉取minio/minio这个镜像。然后查看我们拉取的镜像。启动容器,启动命令如下。

2023-11-04 20:35:55 239 1

原创 云服务器上使用docker安装xxl-job

下载完后在本地电脑解压xxl-job-2.3.1.zip,找到配置文件 application.properties,在window电脑本地修改配置文件 application.properties内容,然后再上传修改后的 application.properties覆盖云服务上的配置文件。在你的云服务器上创建/data/soft/xxl-job ,创建/data/soft/xxl-job/applogs。访问地址:http://{你的服务器地址}:8088/xxl-job-admin。

2023-09-23 03:50:15 213 1

原创 springboot项目中如何获取请求头当中的token

在service层中获取token需要使用相应的工具类,这里我分享一个有用的工具类。直接在相应的service业务层中使用工具类获取当前请求的token。一.直接在controller层当中直接获取token。那么这个工具类如何使用呢?二.在service业务层获取token。获取token方式1。获取token方式2。

2023-09-07 21:53:48 3899

原创 css动态样式的几种常见写法

这样可以根据组件的状态、属性或计算逻辑来动态生成样式,从而实现样式的动态变化。在 vue项目开发中,你有多种方式来创建动态样式,具体取决于你的需求和偏好。你可以根据组件的状态、属性或计算属性来生成动态样式,使你的 UI 更加灵活和交互式。你可以使用 v-bind 或简写的 : 来绑定样式属性,使其与组件的数据或计算属性相关联。使用 `:class` 或简写的 `:` 来绑定类名,然后在对象中定义类名和条件。在这个示例中,buttonStyle 计算属性根据 clicked 数据的状态来生成动态样式。

2023-08-12 01:49:37 2579 1

原创 简单聊聊mysql建表时为什么要创建索引

索引是一种特殊的数据结构,它可以对数据库表中的某一列或多列的值进行排序,并创建一个快速访问的路径,从而加快数据库的查询操作。3. 过多或不合理的索引会降低性能:过多的索引会增加数据库的维护负担,并且在更新数据时需要更新多个索引,导致性能下降。因此,在创建索引时需要谨慎考虑,并根据具体的查询需求和数据表的特点选择合适的列作为索引,以充分发挥索引的优势,避免索引带来的不良影响。4. 提高连接查询性能:当进行连接查询时,如果连接的列有索引,可以减少连接操作的时间,提高连接查询的性能。

2023-07-28 00:41:37 190 1

原创 聊聊开发中常见几种Spring Cloud Config 的配置文件bootstrap.yml、bootstrap-dev.yml 和 bootstrap-prod.yml

`bootstrap-prod.yml` 是 `bootstrap.yml` 的一个特定生产环境的 profile,用于在生产环境下加载特定的外部配置信息,通过激活不同的 profile 加载对应的配置。- `bootstrap-dev.yml` 是 `bootstrap.yml` 的一个特定开发环境的 profile,用于在开发环境下加载特定的外部配置信息,通过激活不同的 profile 加载对应的配置。- 在开发环境中,可能需要与生产环境不同的配置,例如连接到不同的数据库、使用不同的服务地址等。

2023-07-23 10:39:45 4782 1

原创 springboot报错Error creating bean with name ‘dataSource‘的解决方案

此异常的根本原因是类“org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType”的“NoClassDefFoundError”。要解决此问题,应确保在项目的生成配置中正确包含必要的依赖项。具体来说,您需要确保在构建文件(例如,Maven的pom.xml或Gradle的build.Gradle)中正确指定了“spring-jdbc”依赖项。Spring应用程序中名为“dataSource”的bean的依赖项注入存在问题。

2023-05-17 16:10:36 7747

原创 mysql创建表,设置表主键id从1开始自增

当我们在做项目的时候,创建一张用户表,如何让该表的主键id从0开始自增?最后我们只需要在Java实体类的id字段上加上一个注解,规定mybatisplus在添加新表时按照数据库表设计时id的只增规则只增即可,该注解为。(4)使用mybatisPlus创建生成实体类时,指定该实体类的id自增规则为数据库只增规则。下面给出该实体类的完整Java代码,到这里我们也就实现了建表id按照自增规则自增功能。(3)再插入一条不指定id内容的数据表,让表的id自增。可以看出,生成的表id已经是按照只增1的规则只增了。

2023-03-21 17:57:48 10420 1

原创 微信开放平台申请移动应用时如何获取已经安装的第三方app的应用签名

此时点击签名生成工具,下载对应的获取应用签名安卓app(名为Gen_Signature_Android),下载后解压成apk安卓安装包,再把安装包发送到自己的手机上进行安装。Gen_Signature_Android软件输入具体要获取的第三方应用的包名,再点击get Signnatrue就可获取应用签名。点击进入/Android/data目录(应用的安装根目录),此时页面的每一个子目录名即为软件的包名目录。点击进入后发现没有访问权限,点击查看即可,再重复上面的操作,进入Android/data目录即可。

2023-02-28 17:26:01 2674

转载 uniapp npm引入uView组件库

如果您的项目是由HBuilder X创建的,相信已经安装scss插件,如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装, 如不生效,重启HX即可。在项目src目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。如果您的项目是由vue-cli创建的,请通过以下命令安装对sass(scss)的支持,如果已安装,请略过。uView依赖SCSS,您必须要安装此插件,否则无法正常运行。在项目src目录的uni.scss中引入此文件。

2023-02-23 20:07:02 431

原创 前后端分离项目SpringBoot+SpringSecurity 图片验证码登录功能的实现(详细)

前后端分离项目基础登录流程前后端分离项目中无法使用session,所以使用jwt生成token令牌作为客户端进行请求的一个标识,当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。springsecurity + 基础不带验证码登录功能的实现。

2023-01-28 23:56:36 4382 3

原创 浅谈Java中equals与==的区别

我们都知道任何我们创建的Java对象都是Object超类(基类)的子类,我们创建的自定义Java对象若没有重写equals方法,我们所使用的equals则自动基础自基类,下面我们来看看jdk8里Object源码中的equals方法。equals:比较两个对象的值是否相等,前提条件是比较的对象重写了equals方法,若没有重写则比较的仍旧是两个对象的内存地址。在测试类test中比较没有重写equals方法时,创建两个属性值都一样的student对象,用equals进行比较。再测试一次,控制台打印true。

2023-01-03 21:56:15 456 1

原创 idea报错Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception ······解决方案

2.报错原因: 这是因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。在学习到尚硅谷的通用权限系统项目时,整合Swagger2,集成knife4j,问题解决:只需要在application.yml配置文件中添加如下配置即可。引入knife4j依赖。

2022-12-26 01:41:21 516

原创 处理nginx报错 CreateDirectory() “F:\······\nginx-1.18.0/temp/client_body_temp“ failed

学习到黑马的redis课程时,启动黑马点评nginx前端项目时,发现无法访问8080端口,在windows的cmd窗口使用线程命令查看8080端口是否存放其他程序占用该端口,结果发现没有任何程序占用,得出结论,nginx没有启动,黑马点评前端工程关闭没有启动,查看了nginx报错日志,发现如下报错信息。在nginx安装目录下的log文件夹中找到error.log日志记录文件。这时访问localhost:8080端口,黑马点评前端页面就加载出来了。

2022-10-10 21:08:54 2399 6

原创 npm run dev 在云服务器上持久运行vue.js程序,退出xshell后也不会停止运行

vue.js应用程序通常运行命令是npm run dev。,还是需要用到nohub这个Linux命令。当前xshell窗口则发现进程随之。,那么如何保证其持久运行,不会因为。xshell窗口造成进程。

2022-10-09 12:52:02 1258

转载 云服务器如何完整地卸载mysql

第二步:逐个卸载上述文件,若不按照顺序卸载,可能会提示“约束依赖”从而导致删除文件失败,所以直接在删除指令后加--nodeps强行删除。第六步:输入 find / -name mysql 指令检验相关文件是否完全删除。至此mysql5.7已经完全卸载干净。第三步:当文件全部删除后,再输入 rpm -qa|grep -i mysql指令检查一遍,确认全部删除。第四步:输入 find / -name mysql 查看相关文件。第五步:输入下列代码删除相关文件。第一步:查看mysql的安装情况。

2022-10-07 16:17:12 1844

原创 springboot启动项目报错 java.lang.NoClassDefFoundError: org/springframework/jdbc/support/JdbcTransactionMa

springboot启动项目报错Casued by: java.lang.NoClassDefFoundError: org/springframework/jdbc/support/JdbcTransactionManager的解决方案:出现这种问题的原因是因为缺少spring-boot-starter-data-jdbc依赖

2022-09-11 16:26:47 2339

原创 使用npm -v指令查看npm版本时报错node:internal/modules/cjs/loader:956 const err = new Error(message)的解决方案

2、删除“C:\Users\Administrator\AppData\Roaming”下的npm和npm-cache;(其中Administrator就是你现在使用的windows电脑刚激活电脑时设置的用户名)当我们在cdm终端中输入npm -v查看安装node.js时一同安装的npm版本号时,报错。如上解决方案即为node.js中npm用不了的解决方法,很暴力有效。直接暴力解决,重装node.js。3、重新安装node.js即可。1、卸载node.js;

2022-09-06 18:36:08 4357 1

原创 springboot整合thymeleaf实现登录跳转(详细)

springboot、springboot整合thymeleaf实现登录跳转(采用重定向)

2022-08-29 19:04:01 7201 3

redis.conf配置文件

redis.conf配置文件

2023-11-04

空空如也

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

TA关注的人

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