自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 @Validate分组验证参数

在你提到的 @Validated(value = Group.DELETE.class) 中,value = Group.DELETE.class 是一个参数,它的作用是指定验证时使用的验证分组(Validation Group)。那么就可以定义一个删除操作的验证分组,其中包含对用户权限的验证规则。需要注意的是,@Validated 注解是 Spring 框架提供的,与 @Valid 注解不同,后者是 Bean Validation(JSR-380)规范中的注解。

2024-05-08 10:10:50 370

原创 设计模式之责任链讲解

/ 定义抽象处理者接口// 自定义// 公共方法实现公共方法@OverrideSystem.out.println("采购员对订单统一处理");@Override// 在请求处理之前执行的操作,比如权限检查,未登录则直接拦截if (!// 放行// 可以不重写该方法@Override// 在请求处理之后执行的操作// 可以不重写该方法@Override// 在请求完成之后执行的操作// 检查用户是否有权限// 这里假设简单地检查请求中是否包含合法的身份验证信息。

2024-04-13 23:29:23 885

原创 idea使用git

点击 IDEA 右下角的分支名称,然后选择目标分支 B。在 IDEA 的界面中,点击顶部菜单栏的 “VCS” -> “Git” -> “Merge Changes”. 在弹出的对话框中,选择来源分支为 A 分支,然后点击 “Merge”。通过以上步骤,你就可以在 IntelliJ IDEA 中将你的分支(A 分支)上的代码合并到目标分支 B,并且将合并后的代码推送到远程仓库。在 IDEA 的界面中,点击顶部菜单栏的 “VCS” -> “Git” -> “Push”,将合并后的代码推送到远程仓库。

2024-03-05 17:19:52 1197

原创 JPA实现增删改查

创建一个SpringBoot项目。

2024-02-20 15:00:23 555

原创 05.阿里Java开发手册——前后端规约

Long 类型能表示的最大值是 2 的 63 次方-1,在取值范围之内,超过 2 的 53 次方 (9007199254740992)的数值转化为 JS 的Number 时,有些数值会有精度损失。反例:通常在订单号或交易号大于等于 16 位,大概率会出现前后端单据不一致的情况,比如,“orderId”: 362909601374617692,前端拿到的值却是: 362909601374617660。说明:尽管 HTTP 支持使用不同的输出格式,例如纯文本,JSON,CSV,XML,RSS 甚至 HTML。

2024-01-16 13:56:18 1252

原创 04.阿里Java开发手册——注释规约

**内容*/// xxx${USER}${user}///* */

2024-01-16 11:05:59 506

原创 搭建feign远程调用环境

在我的SpringCloud专栏中已经介绍过SpringCloud五大组件的环境搭建,各个环境的搭建都有详细的步骤讲解,之前我们说过各个服务搭建都是不依赖于之前的环境的,本节介绍的Feign服务间远程调用也是,本次也是侧重于环境搭建,Feign的作用我们之前已经介绍过了。

2024-01-15 15:45:41 432

原创 SpringCloud Config配置中心详解及环境搭建

我们之前介绍并且搭建过eurekazuulhystrix组件。本节介绍的config是SpringCloud五大组件的最后一个,还有一个是Ribbon ----- 客服端负载均衡,之前我们有简单介绍过☞Eureka、Nacos注册中心及负载均衡原理,直接使用注解就可以实现负载均衡或者是网关zuul默认带有负载均衡策略、gateway使用lb。本节我们来介绍下config作用及环境搭建。

2024-01-15 10:47:32 1505

原创 java中浮点数如何进行等值比较

说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。使用BigDecimal进行浮点数比较会更加准确,但也会更消耗资源。如果精度要求不是特别高,使用误差范围进行比较通常已经足够。说明:BigDecimal(double)存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。(1) 指定一个误差范围,两个浮点数的差值在此范围之内,则认为是相等的。(2) 使用 BigDecimal 来定义值,再进行浮点数的运算操作。浮点数之间的等值判断,基本数据类型不能用。

2024-01-12 16:45:08 545

原创 03.阿里Java开发手册——OOP规约

在-128 至 127 之间的赋值,Integer 对象是在 IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。19.【推荐】使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无内容的检查,否则会有抛 IndexOutOfBoundsException 的风险。

2024-01-12 16:38:23 971

原创 02.阿里Java开发手册——日期时间

说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的 YYYY就是下一年。反例: java.util.Date.after(Date)进行时间比较时,当入参是 java.sql.Timestamp 时,会触发 JDK。【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。2) 表示分钟则是小写的 m;

2024-01-12 15:49:45 443

原创 01.阿里Java开发手册——命名规范

说明:子类、父类成员变量名相同,即使是 public 类型的变量也能够通过编译,另外,局部变量在同一方法内的不同代码块中同名也是合法的,这些情况都要避免。反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),框架在反向解析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。1)【强制】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用Impl 的后缀与接口区别。

2024-01-11 14:50:58 1247

原创 Hystrix熔断器环境搭建及详解

Hystrix,英文意思是豪猪,全身是刺,刺是一种保护机制。Hystrix也是Netflix公司的一款组件。

2024-01-11 14:14:32 1273

原创 搭建zuul网关

过滤类型:pre: 在请求被路由到目标服务前执行,比如权限校验、打印日志等功能;routing: 在请求被路由到目标服务时执行post: 在请求被路由到自标服务后执行,比如给目标服务的响应添加头信息,收集统计数据等功能;error: 请求在其他阶段发生错误时执行。@Component@Slf4j// 请求类型@Override// 假如多个过滤器,会根据这个数字来进行排序执行@Overridereturn 1;// 过滤器是否开启@Override// 执行自己的业务逻辑。

2024-01-10 10:27:24 518

原创 创建springBoot模块没有目录结构

我用2023版的idea创建模块的时候会出现一些奇奇怪怪的错误,有时候没有项目目录结构,有时候项目的的目录都是普通文件。接下来简单介绍下解决方案。选择有问题的模块,点击🆗即可。

2024-01-09 15:07:03 552

原创 搭建Eureka服务注册中心

我们在别的章节中已经详细讲解过eureka注册中心的作用,本节会简单讲解eureka作用,侧重注册中心的搭建。Eureka作为服务注册中心可以进行服务注册和服务发现,注册在上面的服务可以到Eureka上进行服务实例的拉取,主要作用就是进行请求时的负载均衡。

2024-01-09 11:12:03 1431

原创 04.SpringCloud网关-gateway

过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:import org。

2024-01-08 14:52:58 1213

原创 03.SpringCloud服务间远程调用

使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。

2024-01-08 11:18:27 1295

原创 02. Eureka、Nacos注册中心及负载均衡原理

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。

2024-01-08 09:17:35 1332

原创 01.微服务架构优缺点、服务拆分和远程调用

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

2024-01-05 09:49:55 994

原创 EasyCode代码生成器插件

在setting-> other settings -> Template -> Group Name【选择对应的组模板】-> 修改Group Name:MyBatis-Plus修改的内容不会在Default中生效, 各个组之间是独立的。

2024-01-02 17:23:17 409

原创 MySQL创建member表失败

最近在做一个项目,在台式机上可以跑通,也测试了各个已完成的接口,提交到了GitHub后想着用宿舍的电脑跑一下,在测试member表相关接口时就出错了。报了SQL语法错误,但SQL语句很简单,就根据手机号查询不至于出错,最大可能就是环境不一致出错了,但我用到数据库版本都是8.0的,差别并不大,好像不至于出错。加了反引号后查询成功了,但是member这个词用得很频繁,作为保留关键字感觉不太可能,并且在我的台式机上可以不加反引号,我只能继续排查错误,毕竟我不想改已经写好的代码,改了后台式机上运行可能又会报错。

2023-12-23 17:01:29 526

原创 SpringBoot数据校验

判断值是否满足条件,不满足就返回。但如果前端传递的是表单,那么要进行判断的条件就比较多了,太多的。后端在进行数据请求时,通常会校验前端传递过来的参数是否是空值或者是null。会让代码变得臃肿,而且也不好维护。可以通过今天的验证框架进行参数校验。通过上面的操作后就可以完成请求过来时参数校验。

2023-12-21 14:05:00 460

原创 SSM框架实现学生信息管理系统

这个管理系统是我学完SSM后的一个练手小项目,感兴趣的小伙伴可以在B站搜下SSM实战,这是雷神讲的一套课程。SSM框架是Spring+SpringMVC+Mybatis的合称,注意不是整合,整合是SpringBoot框架,SSM框架的项目联手有一个就够了,毕竟是真的繁琐,体会过这种繁琐后,对后面学习SpringBoot框架可能更有感触。图中数据是随机生成的,改个字段名就可以叫对应的管理系统了,感兴趣的小伙伴可以关注我的公众号【橙晴丰Ciao】,获取源码:SSM学生管理系统源码。

2023-12-18 15:57:12 247

原创 JavaWeb文件上传与下载

所以就还是第一种方式将文件存放到war包中,即服务器上就好了。项目重新运行会重新编译一次,按道理war包中之前上传的资源是会被清除的,但我测试后发现文件还是存在,但这是好事,这就不用担心文件被清空了。重启是我们手动的行为,如果是重要的文件怕被清空,可以先保存下来到项目中相同的文件路径下再启动即可。通过这种方式指定文件的上传路径,文件只会上传到war包中,容易误删,但指定本机地址,如。文件复制一份到源码中,即使重新编译也会携带上这些文件。,一般点击下载量最多的jar进行下载就可以了。不需要依赖任何jar。

2023-12-17 23:35:12 107

原创 基本运算byte b3 = b1 + b2和 b1+=b2

在这种情况下,编译器会自动进行类型转换,因此编译通过。这是因为复合赋值操作符会在后台进行类型转换,确保赋值操作的安全性,不会导致数据溢出问题。:无论是基本赋值运算符还是扩展赋值运算符都是最后算,并且是把右边的计算的结果最后赋值给左边的变量,即左边一定是一个变量。因此,虽然两个表达式的结果看起来相似,但在编译器处理时有所不同,导致了编译错误和编译通过的差异。扩展赋值运算符:+=,-=,*=,/=,%=,>>=,<<=,&=…类型的变量,这会导致编译错误,因为在运算过程中它们会被自动提升为。

2023-12-17 00:58:06 98

原创 hutool包进行Java爬虫

使用hutool包进行爬虫其实就是使用包中的HttpUtil工具类发起网络请求,再使用ReUtil进行正则匹配将所需要的内容保存下来。接下来详细介绍下这两个工具类的使用。在使用之前我们先导入所需要的依赖,也可以通过jar包形式下载后添加到项目依赖中。</</</</

2023-12-13 17:04:16 914

原创 ExecutorService介绍

在开发中为了提高系统的响应速度和处理能力会使用到多线程,但线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展。就像MySQL数据库连接一样,每创建一个连接都需要消耗资源,所以就引入了数据库连接池,线程也引入了线程池的概念,需要线程时可以不用创建,直接从池中获取,在JDK中就为我们提供了ExecutorService。

2023-12-08 16:24:38 114

原创 SpringBoot报No qualifying bean of type ‘com.lzk.mapper.UserMapper‘ available

【代码】SpringBoot报No qualifying bean of type ‘com.lzk.mapper.UserMapper‘ available。

2023-12-07 14:50:09 1061

原创 Java中异常处理顺序和全局异常处理器

在SpringBoot项目中该全局异常处理器中与方法声明的顺序无关,并不会像try-catch一样。即使先声明运行时异常方法再定义数据越界方法也不会编译不过。我们直接通过代码看下Java中异常的处理顺序。

2023-12-03 16:25:39 122

原创 无分模块下Mybatis官方生成器

有无分模块其实对生成器生成代码没有影响,只是无分模块更加好理解,也就是添加插件和依赖,指定配置文件,运行插件即可。

2023-12-01 16:22:45 65

原创 代码生成器——MyBatis Builder

【代码】代码生成器——MyBatis Builder。

2023-12-01 15:52:14 135

原创 多模块下MyBatis官方生成器

通过插件生成的Mapper接口和XML文件是MyBatis中的,因此需要在各个对应模块(如果有多个模块)下导入MaBatis依赖和MySQL依赖。生成train_member数据库下对应表的xml文件和Mapper接口,注意连接数据库的用户名、密码是否正确。配置文件指定了XML、Mapper接口生成的位置。等配置文件生成xml文件和Mapper接口,多个模块可以写多个配置文件生成多个xml文件和接口。在generator引入依赖和插件,插件根据。创建generator模块。在启动类上进行包扫描。

2023-12-01 09:45:20 64

原创 代码生成器——MyBatisX插件

MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率。但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件。MyBatisX一款基于 IDEA 的快速开发插件,为效率而生。

2023-12-01 09:31:40 205

原创 01.vue3大事件——项目初始化、技术介绍

一些优势:比同类工具快 2倍 左右(比yarn更快)、节省磁盘空间… https://www.pnpm.cn/选择需要的依赖:router、pinia、ESLint、prettier。

2023-11-27 10:10:21 199

原创 09. 智慧商城——订单结算、订单管理

01. 订单结算台所谓的 “立即结算”,本质就是跳转到订单结算台,并且跳转的同时,需要携带上对应的订单参数。而具体需要哪些参数,就需要基于 【订单结算台】 的需求来定。(1) 静态布局准备静态页面<template> <div class="pay"> <van-nav-bar fixed title="订单结算台" left-arrow @click-left="$router.go(-1)" /> <!-- 地址相关 --&gt

2023-11-27 09:37:37 148

原创 Python爬取百度翻译,存储为JSON文件

【代码】Python爬取百度翻译,存储为JSON文件。

2023-11-24 14:34:46 68

原创 Python爬虫图片及相关知识讲解

以下是 requests 库的一些主要特点和功能:发送 HTTP 请求:requests 提供了多种发送 HTTP 请求的方法,包括 GET、POST、PUT、DELETE 等。通过使用这些方法,可以轻松地发送请求到指定的 URL,并获取服务器响应。爬虫发起的请求基本就是GET。# 1. 发送 GET 请求# 2. 传递查询参数# 3. 设置请求头部print(response.status_code) # 打印状态码print(response.text) # 打印响应内容。

2023-11-24 14:17:37 553 1

原创 Vue3路由配置、跳转

Vue3中路由的使用跟Vue2不同,因为vue3中没有。//此处this为undefined。

2023-11-23 15:44:03 522

原创 Vue3 状态管理 - Pinia

Pinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品提供更加简单的APl(去掉了mutation,Pinia 中对state数据的修改可以直接通过action,Vuex中则是通过mutation)提供符合组合式风格的API(和Vue3新语法统一)去掉了modules的概念,每一个store都是一个独立的模块配合TypeScript更加友好,提供可靠的类型推断。

2023-11-23 11:19:08 249

Thymeleaf案例入门和基本语法讲解

Thymeleaf案例入门和基本语法讲解

2023-09-16

空空如也

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

TA关注的人

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