- 博客(48)
- 收藏
- 关注
原创 Springboot 三层架构(Controller(控制层)、Dao(数据访问层)、Service(业务逻辑层))
客户端向服务端发起请求,由控制层接收并调用业务逻辑层中的方法,在处理逻辑时会对数据库中的数据进行调用,这时就要去调用数据访问层数据访问层将会把查询到的数据进行传递给业务逻辑层,而此时的数据需要做逻辑处理,处理完毕之后,在传递给控制层,这时客户端的数据已经拿到了,但是不能直接去传递,需要将数据以HTTP协议的规范进行传递(可以直接创建一个Result类进行单独处理),规范完之后,在传递给客户端。注意:上述中的“传递。
2024-10-20 18:44:38
14967
5
原创 天机学堂——day1(修改bug)
本文章使用的是《天机学堂》开源的资料,并从创建虚拟机开始部署《天机学堂项目》,避免还要下载资料中的20GB虚拟机,只需要下载镜像以及其他基础资料即可,请大家放心食用天机学堂-自定义部署详细流程(部署篇:初始化项目、启动)通过前面两篇的文章自己的配置,其实也差不多熟悉项目了,视频前面的配置就不多说了,直接从改bug开始。
2025-11-12 11:30:48
542
原创 天机学堂-自定义部署详细流程(部署篇:初始化项目、启动)
本文详细介绍了天机学堂项目的自定义部署流程。主要内容包括:下载项目资料并配置所需镜像;初始化项目环境,包括Java环境、Jenkins配置及IP修改;创建必要目录结构;配置虚拟内存和本地域名;分阶段启动各项服务。重点讲解了部署过程中的关键步骤,如镜像导入、环境变量设置、服务启动顺序等,并提供了完整的服务端口及访问信息表。同时文章还列出了可能遇到的常见问题及解决方案,如Redis连接问题等。该部署方案避免了下载大容量虚拟机镜像,仅需基础配置即可完成项目部署。
2025-11-12 11:30:04
724
原创 天机学堂-自定义部署详细流程(部署篇:安装虚拟机、docker)
本文详细介绍了从零开始部署《天机学堂》项目的完整流程。首先指导读者使用VMware创建CentOS7虚拟机,包括系统安装、网络配置(设置静态IP为192.168.43.100)等关键步骤。接着详细说明了Docker的安装过程,包括移除旧版本、安装依赖、配置阿里云镜像源等操作。最后提供了国内Docker镜像加速器的配置方案,包含多个有效镜像地址。文章特别提醒注意IP地址配置差异可能导致的问题,并提供了相关解决方案参考。整个部署过程可避免下载20GB虚拟机文件,只需基础镜像即可完成。
2025-11-11 19:10:04
1066
原创 配置linux虚拟机所遇到的问题——明明上午的网络还好好的为什么下午就不行了?
大家在配置虚拟机的时候如果遇到此问题可能的原因是:在你配置好之后有本机网络连接其他网络或断开网络,所导致的,解决办法也能很简单:1、重启VMware的NAT服务2、 快速重启网络。
2025-11-11 15:06:52
200
原创 Consumer 和 Function 接口详解
/ 组合函数 - 先执行before,再执行当前函数super V,?// 组合函数 - 先执行当前函数,再执行aftersuper R,?// 恒等函数Consumer:用于"做事情",执行操作但不关心返回值Function:用于"转换数据",接收输入并返回输出在导入方法中,两者完美配合:Consumer处理业务逻辑,Function生成用户反馈信息这种设计让代码更加灵活、可复用,并且符合函数式编程的思想。
2025-10-21 22:29:07
388
原创 若依字典原理---后端
若依框架选择只为特定字典接口(如getDicts优先保障高频、稳定数据访问的性能,同时确保管理操作的实时性和数据一致性,并简化缓存管理。这种设计在多数情况下是合理且高效的。希望这些解释能帮助你更好地理解若依字典缓存的设计,并指导你的开发和问题排查。
2025-10-19 21:53:30
830
原创 若依字典原理--前端
若依框架的前端字典功能通过全局混入(Mixin)和自定义指令实现自动化数据管理。核心流程包括:组件声明dicts选项→Mixin触发字典初始化→优先读取Vuex/Redis缓存→无缓存时请求后端查询sys_dict_data表→结果注入组件。系统采用"约定优于配置"设计,开发者只需声明dicts类型,框架自动处理数据加载、缓存和渲染,通过dict-tag组件和下拉框绑定实现便捷使用。这种声明式设计统一了数据管理,显著提升了开发效率和性能。
2025-10-19 21:21:57
855
原创 如何使用若依解决多选字段的问题——方案二
摘要: 针对多选字段存储需求,建议采用JSON类型存储"对应领域"和"教材特色"字段。该方案支持结构化存储数组数据,便于查询处理。在若依框架中需:1)数据库设计为JSON类型字段;2)实体类通过注解和自定义转换器处理JSON数据;3)前端使用多选组件绑定JSON字段。通过自定义Excel转换器(JsonConverter)可预防导入导出异常,实现JSON与逗号分隔字符串的互转。此方案虽较方案一复杂,但能更好支持结构化数据操作,适合有特殊需求的场景。
2025-10-18 13:02:09
790
原创 如何使用若依解决多选字段的问题——方案一
本文介绍了在若依框架中实现多选功能的两种方案对比,重点推荐使用字典+VARCHAR+复选框的方案。该方案通过配置系统字典管理选项,利用VARCHAR字段存储逗号分隔的多个选项值,并使用复选框组件绑定字典数据。相比JSON方案,此方法更简单且与若依原生功能无缝集成,适合以展示和CRUD为主的管理系统。文章详细说明了数据库设计、字典配置和前端调整的具体步骤,并对比了两方案的优缺点,建议优先采用字典方案提高开发效率。
2025-10-18 12:57:02
960
原创 Spring Security 指南
Spring Security 快速入门指南 Spring Security 是 Spring 生态中强大的安全管理框架,提供认证和授权功能。相比 Shiro,它功能更丰富且社区支持更好。本文介绍了 Spring Security 的基本概念、快速入门步骤和核心实现原理: 核心功能: 认证:验证用户身份 授权:检查用户权限 快速入门: 通过简单依赖引入即可启用基础安全功能 默认提供登录页面和基本认证机制 工作原理: 基于16层过滤器链实现 核心过滤器包括UsernamePasswordAuthenticat
2025-10-17 08:24:17
1580
原创 尚硅谷-尚庭公寓知识点
ThreadLocal的主要作用是为每个使用它的线程提供一个独立的变量副本,使每个线程都可以操作自己的变量,而不会互相干扰,其用法如下图所示。
2025-05-31 11:54:08
1001
原创 springCloud/Alibaba常用中间件之Seata分布式事务
在开始介绍之前先声明一下,seata的AT模式使用起来并不难,甚至只需要添加一个注释即可,但是在面试中seata的AT模式会问一些关于概念性的东西所以这里详细的介绍一下,若是你只想要知道如何使用直接向下看到Seata-AT模式使用在Seata中四种模式下都会有的三个核心组件TC(Transaction Coordinator[事务协调器]):负责全局事务的提交和回滚TM(Transaction Manage[事务管理]):定义事务的边界(如),事务的发起者。
2025-05-16 09:18:04
1323
原创 springCloud/Alibaba常用中间件之Setinel实现熔断降级
在上述的过程中大家应该已经发现了每当重启的时候都要重新进行配置Sentinel,这时就需要持久化配置,但是Sentinel并没有自带持久化功能,需要结合Nacos才可以完成,所以在这里在从述一下,这里的Sentinel版本要1.8以上,且三者的关系一定不要有依赖冲突。
2025-05-12 15:49:17
1230
原创 springCloud/Alibaba常用中间件之Nacos服务注册与发现
本文介绍了SpringCloud Alibaba中Nacos的服务注册与发现功能。首先,提供了官方中文学习文档链接,并展示了微服务架构体系图。接着,详细说明了依赖版本配置,包括Spring Boot、Spring Cloud、Nacos等组件的版本信息。文章重点讲解了Nacos的下载、安装及单机模式启动步骤,并提供了默认访问地址。随后,通过示例代码演示了如何将服务注册到Nacos,包括依赖导入、配置文件修改、主启动类注解及业务类编写。最后,介绍了服务映射的实现,特别指出消费者需要额外导入负载均衡依赖。整个过
2025-05-10 15:42:02
1223
原创 springCloud/Alibaba常用中间件之GateWay网关
Component /*注入Spring容器中*//*注意命名规范:~~~RoutePredicateFactory*/Config> {@Validated@Setter@Getter@NotEmpty//钻、金、银等用户等级/*** 写逻辑:根据userType进行判断是否可以访问此路由* @return*/@Override@Override//检查request的参数里面,userType是否为指定的值,符合配置就通过。
2025-05-08 20:14:12
1392
原创 springCloud/Alibaba常用中间件(Consul、LoadBalancer、Openfeign、circuitBreaker)
变为。
2025-04-19 13:34:54
1529
原创 基础CRUD后端项目(使用MybatisPlus、springBoot3)
这里的Service中直接调用此方法即可,在mapper中传参只需要传输一个bookContent参数(因为这个类中有封装page中所需的属性)springDoc可以快速的将我们开发的API接口进行测试,就不需要使用postman进行一个一个的输入网址测试。创建数据库主要还是使用AI,自动帮我生成但是要注意许多的细节问题,列如:命名问题、软删除、索引等。注意:当项目多的时候xml中会很繁琐,因为每当想要使用分页的时候都需要手动的去写sql很不便捷。(注意这里的Page插件是mybatisPlus中内置的)
2025-04-14 13:08:04
1171
原创 linux详细安装/配置(mysql/nginx/tomcat)
FinalShell上下载,当然没有FinalShell也可以使用VMWare进行上传下载但是可能没那么方便在执行下面操作之前建议先打一个快照避免出错。
2025-03-28 23:34:11
928
原创 mybatisPlus(条件构造器API)
1:mybatisPlus是mybatis的增强工具,所以在原本的mybatis中可以使用的语法在mybatisPlus基本上也是可以使用的。2:在mybatisPlus中引入了条件构造器:Wrapper使得更加方便的进行开发。
2025-01-12 17:21:15
1246
原创 SpringBoot3-深入理解自动配置类的原理(尚硅谷SpringBoot3-雷神)
此时所对应的**属性类(ServerProperties)**中的对象port就变成了8888,[原理就是调用了ServerProperties中的setPort方法],配置文件中没有写的属性类中的对象,则以SpringBoot。:场景是什么:以web场景举例,假设你需要进行编写web项目,在SSM中需要进行导入许多的依赖,而在这里你只需要进行导入web场景,则会直接进行导入这个场景所需要的所有依赖】在springBoot中,若是在配置文件中的属性都与配置类中的对象一一对应(这时也称此类为。
2025-01-05 21:39:08
1220
原创 axios
Axios 拦截器和 Vue 路由守卫作用于前端,分别针对 HTTP 请求和路由导航;此时就向网址http://forum.atguigu.cn/api/rand.qinghua发送了一个post请求,并且请求体中有name参数和format参数,url参数有format。在使用axios之前因为它是第三方库,所以需要进行npm i axios(下载),之后才可以进行使用这里就不演示了。axios:是基于ajax封装的一个对象,相对于ajax来说axios有更加强大的API以及更加简化的请求方式。
2024-12-27 18:57:55
2110
原创 全栈基础项目(残花月伴学生管理系统)
1、在项目快结尾的是时候我发现一个大问题就是我没有创造管理员的数据库就导致,逻辑上有一些问题,但是当发现是已经很难进行修改了,因为如果改动的话会有很多的方法都需要进行修改,以及也非常的浪费时间,最后就没有改了,所以在大家写项目的时候还是建议先写接口文档或者将大概轮廓都梳理出来,这样就会避免这样的问题。2、在写项目的时候最大的BUG基本都是出现在关于跨域的问题,所以在学写项目的时候可多看一些前后端连接的视频进行学习,从而可以尽量避免这类问题。
2024-12-16 15:45:16
978
原创 Spring-AOP(面向切面)
逻辑:创建一个接口和实现类(目标类),在创建一个代理类也实现此接口,这时代理类就有了目标类的所有方法,此时就可以实现某一个方法在代理类中的方法进行输出日志、调用目标类的方法等操作,测试时就可以直接进行调用代理类即可。就是继承一个目标类的代理类,在代理类来完成一些比较繁琐的代码如:输出日志等,当需要使用到核心代码时再去调用目标类的方法,这样子目标类就会变得更加的简洁明了。概念:动态代理就是将目标类中的所有方法都进行统一处理,实现方法就是去使用Poxy类中的方法。这里就拿一个简单的计算机的逻辑来讲解。
2024-12-06 11:10:13
880
原创 Spring手写IOC
什么是IOC:ioc可以抽象的理解为是一容器,而它所存储的内容就是Bean对象,打个比方:你可以把IOC当成水杯,而里面的水就是Bean对象。**IOC可以做什么:**在Spring中IOC一般是用来进行创建对象(Bean对象的创建)和将方法或者属性进行注入(属性注入),这样子可以避免代码大量的耦合。
2024-12-03 13:26:58
1223
原创 Vue工程的创建(以及导入Element)
概念:element是一个组件,在你写页面时可以使用elment中的组件,来提升你开发的效率,比如你需要创建一个按钮,你可以使用里面的按钮组件直接套用。进入到这个页面后它会让你选取你需要使用vue3还是vue2,这里如果你是初学者的话建议先选2即可,若是有基础的话,就自由选择即可。在创建完vue工程之后使用Vs code打开之后会发现有许多的文件,而这些文件都是做什么用的呢?简单的说他就是一个他就是一个一个的半成品的组件,在你需要使用时可以直接拿来用即可。在测试之前可以先把vue创建默认添加的代码清空。
2024-11-08 13:06:07
1249
原创 过滤器(Fiter)与 拦截器(Interceptor)
如何定义Fiter:你需要定义一个类,实现Fiter接口,并重写其中的是三个方法:doFilter()、init()、destroy()。创建一个实现HandlerInterceptor接口的类,并更居自己的需要去重写指定的方法(preHandle、postHandle、afterCompletion)。@Component//将定义的拦截器进行存储在IOC容器中。
2024-11-06 10:45:48
1269
原创 配置文件格式(xml、properties、yml/yaml)
3、使用缩进表示层级关系,缩进时,不允许使用Tab建,只能使用空格(idea中会自动将Tab转化为空格),列如:连接数据库所需要的配置和Mybatis中的驼峰命名的配置等,都是存储在此文件中。(yml与yaml两种的格式是一样的所以这里就算成两种配置格式了),而此格式SpringBoot并不会解析此格式的配置文件。4、缩进的空格数目不重要,只要相同层级的元素左边对其即可。5、#表示注释,从这个字符一直到行尾,都会被解析器忽略。其中除了上面的两种之外还有一种较为常见的是。优点:对比XML格式较为。
2024-11-01 23:45:35
935
原创 Java 算法(二分查找、冒泡排序)
进行判断head与end之间的值是否是大于或者小于value值,若是中间值大于value则将end变量重新赋值为中间值的索引,若是中间值小于value值则将head变量重新赋值为中间值的索引,若当发现中间值等于value值则返回中间值的索引,按照这个逻辑循环,若当head变量大于或者等于end变量时则说明此组数据没有所要查询的value值。:此算法的实现逻辑很简单,就是将此组数据中的最大值放到数组的最后或者第一个的位置上,之后在以这个最大值为标准依次按照大到小的方式进行排序。:用来存储所要查询的数据。
2024-10-24 13:46:17
270
原创 动态SQL ,Xml映射文件(if、where、set、foreach、sql、include、trim)
就是当你使用select语句去创建Xml条件查询(ifSelecte),且此条件查询中的条件包含(name、id、entrydate,userName、gender…
2024-10-15 21:10:09
1526
原创 Mybatis XML映射文件
xml映射文件中不止select这一条sql语句可以用,这里我就只使用了select标签去查询,大家也可以使用其他的标签来去完成其余的sql语句列如(delecte、insert、update标签…resultType:此属性是select标签的属性,需要给他返回结果的类型,这里可以写我们创建表的实体类。namespace:此属性是mapper标签的属性,需要给他指定Mapper映射接口的地址。id:此属性是select标签的属性,需要给他指定的一个方法(在上面我们所设定的接口方法)
2024-10-14 14:07:04
1034
原创 Mybatis - 基础(增加、更新、条件查询)
Mybatis的增加是使用java中的注解来完成增加,增加的过程中会用到的注解为:@Insert、@Options。总结:整体来说Mybatis的增加和更新操作并不难,只要注意不要将属性名或者sql代码敲混了,还是很容易实现的。更新代码与上面的添加代码很相似,只不过是其中的SQL语句发生了改变,其中用到的注解为:@Update。此注解的作用是:当你增加完之后想让他返回一个主键或者一个字段的值可以使用注解来完成,注意:在你想要输出此字段的值是可以使用此接口的实现类的get方法。
2024-10-13 14:22:47
1179
原创 Mybatis-基础(删除)
这里创建注解使用sql语句时可以直接id = 3,并把下面的形参值删除,但是这样的方法会使得代码的灵活性降低,以及性能降低。这里为了更方便理解可以先将到我的网盘中将拿取两个jar包方便演示,网址为:通过网盘分享的文件:SQL注入演示。5、这时在当前的文件中打开cmd,并使用代码:java -jar jar包名字 ,启动对应的jar包。SQL注入问题:通过操作输入的数据来修改事先定义高的SQL语句,以达到执行代码对服务进行。执行SQL时,会将#{…*:第一个jar包是没有使用预编译SQL,而第二个使用了。
2024-10-12 16:54:05
932
原创 Mybatis (入门程序)
在pom.xml文件中依赖org.springframework.boot、org.mybatis.spring.boot的版本分别修改为:2.7.5、2.2.2修改以及的版本改为自己java版本。注意:2023年版本的idea这里java的版本最低是17,若你JDK版本不是17,可以将java的版本调到最高兼容,后面在设置和里面进行调配。二:在实体类中创建上面Mysql中User表以每个字段为一个属性,并生成对应的set/get/无参、全参构造/toString方法。
2024-10-11 20:45:34
1175
原创 Mysql (索引)
索引的优点:提高数据查询的效率,降低数据的IO的成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。索引的缺点:索引会占用储存空间。索引大大的提高了查询效率,同事却也降低了insert、update、delete的效率数据结构简单的可以理解为是为了提高效率的一种结构,其中对应不同的代码可以使用不同的数据结构来去提高它的效率。其中Mysql因为运用的innodb引擎,而innodb引擎所使用的索引是B+Tree索引所以Mysql使用的是B+Tree索引。
2024-10-09 11:17:09
1285
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅