- 博客(59)
- 收藏
- 关注
原创 ai天机学堂复习关键技术点
其实在从nacos读取配置文件到java后端,读取成类之后,就可以按照普通类来处理,只不过这个类是系统创建并配置好的,可以直接使用的对象。naocs里面的配置和java代码中yml的配置都是可以直接被读取的,是本质相同的配置文件,都是根据配置前缀匹配对应的配置。这个配置文件前缀是tj.ai.session,需要的配置为title,describe,examples。3.编写代码-->各种小组件再熟悉如何运用之后就没必要死记硬背了,可以直接交给ai来复现。其实这部分知道原理就行,其他的可以直接问ai。
2026-10-23 07:55:16
193
原创 Spring-security
授权就是认证完成之后发生的,拥有不同的权限的用户访问不同的资源认证是为了确保用户身份的合法性,保护系统的隐私和资源授权是为了更细颗粒度的对隐私数据做出划分。
2026-09-21 12:18:30
179
原创 星火项目笔记
java是以类为核心的语言,如果没有类和对象的话上面的功能都无法实现了,所以ioc容器就是为了这个创建对象可以手动来,但是很麻烦,这个时候ioc容器可以帮助我们创建对象面向切面如何理解:本来三个类都需要在开头和结尾的地方输出日志,但是这样代码的复用性就太差了,所以要用切面切面:在三各类相同的地方像切西瓜一样切一刀,将切面抽象为一个对象,这个对象就是切面做法:将权限规则写在注解上,通过 AOP 切面自动拦截请求。@RequireRole("WORKER") // 一行注解搞定。
2026-09-20 20:25:50
199
原创 AI天机学堂
course提供的查询课程的方法返回的信息太多,有一些不必要的部分,如果将所有的信息都交给ai大模型,将会消耗非常多的token出于节省token的考虑,我们采用了定义一个结果类的方法在结果类中将属性进行了筛选,并将课程价格进行了转换如果调用了课程工具,则需要在生成信息的时候同步生成一个课程卡片需要在生成信息的时候同步发送一张课程卡片,里面的内容都是后端传递给前端的,没有经过大模型,所以flux流无法直接包装这些信息(不做处理的话,flux只包裹大模型生成的信息)
2026-08-17 18:40:42
203
原创 Redis...2..超卖..乐观锁..分布式锁..redisson
1.id是会展示给用户的,如果id的规律性太强会让用户观察出一定的信息2.受表单数据的限制:订单量是和容易积累的,在多年的运营下,订单量很可能超过了单表所能存储的最大数量,此时开始新的一个表来存储的时候,自增的ID就会出现重复的情况前三十一位为时间戳,记录下单时间,以秒为单位序列号:秒内的计数器,支持每秒产生2的三十二次方个id确保唯一性的方法:不同时间(不在同一秒)的id依靠时间戳来决定相同时间(在同一秒)的id依靠序列号来分辨变化的key,1.因为如果时间的key都是同一个,那么,同一秒内的时间戳(包括
2026-06-23 10:14:19
267
原创 泛型相关知识
*** 手搓一个集合源码*///集合在存储的时候都是存储为Object//集合在取出的时候才会强转为泛型指定的类型index++;// 无参构造:初始化数组// 关键:给数组分配内存空间@Override泛型定义的两种方法:1.写在类名后面2.写在方法上的标识符后面这样就定义好了泛型。
2026-06-23 09:54:03
212
原创 多线程.....
单线程:从上往下依次运行,cpu不会切换到其他代码程序去运行多线程:同时做多件事,在多个程序hi间来回切换,减少等待时间一个cpu可以是多线程的设置线程的名字,也可以通过构造函数传递名字通过构造函数设置名字--有一个需要注意的点--继承Thread类的类,构造方法是不能继承的,所以要在子类的构造方法中调用父类的构造方法主线程和子线程是并发运行,谁先运行完取决于谁休眠时间少默认的线程优先级是5,不管是主线程还是子线程1.创建线程对象2.调用start()方法,开启线程,此时线程有执行资格,
2026-06-20 14:50:20
57
原创 Redis...1..基础语法..短信登陆..缓存管理
redis是一种key-value的数据库,key一般是Stirng类型,value的类型多种多样基础类型包括String,Hash,LIst,Set@Override//校验手机号格式是否正确return Result.fail("手机号格式错误");//校验短信验证码是否正确if(!return Result.fail("验证码错误");//查询数据库内有无该手机号//没有该手机号则新建一个手机号//保存用户的信息到session//创建用户:包括手机号,用户名。
2026-06-04 12:05:08
254
原创 知识点复习
登录校验:在用户登陆成功之后,在后续的每一次请求中都需要校验该用户有没有登陆http请求是无状态的:后一次请求无法携带前一次请求的数据要完成登录校验就需要在后一次的请求中获取之前登陆的结果所以需要在后一次的请求中携带登录标记表示登陆状态因为后端的接口数量很多:所以要么在后端的每一个接口中都编写校验的逻辑,要么在后端添加同意拦截这一层在登录成功之后存储一个登陆标记,然后在后续的每一次请求中都获取这个登陆标记,用统一拦截的方式来获取登陆标记统一拦截:用拦截器或者过滤器来获取登陆标记。
2026-06-04 12:04:57
189
原创 FastAPI
.代表该参数必须传入在填写我们需要的对参数的要求之前先写...,表示该参数是必须传入的参数对于整数的限制是:大小,大于或者小于某一个整数对于长度的限制大多指向字符串和路径参数,查询参数不同的是,类型注解不是写在方法内而是写在类内其实一样,都是在原有的类型注解之后些=类型注解()这是一个非常好的问题,触及了 FastAPI 的核心设计理念!之所以要把写在装饰器里,而不是写成普通的 Python 函数返回值类型注解(比如-> dict),是因为 FastAPI 需要。
2026-05-25 08:58:41
44
原创 Python+AI
python是动态类型的语言,一个变量可以存储多种不同类型的数据,但是在开发中,我们推荐只存储一种类型的数据双引号和单引号定义的字符串不能换行换行之后python会把两个字符串拼接起来删掉的话会报错。
2026-05-10 19:36:47
446
原创 Spring全套
数据访问和web开发都是上层建筑部分,基于切面和核心容器上面存在的重点是:1.在UserServiceImpl中添加一个setUserDao用于接收注入的对象2.在xml配置文件当中嵌入<property>配置注入3.在UserServiceImpl设置UserDao对象这个成员属性,这样之后UserServiceImpl中别的方法都可以调用这个对象。
2026-05-08 21:44:47
394
原创 lambda表达式
利用的是多态,向上转型,new的实现类的对象可以用接口来接收实现的方法是email里面的方法但是这样步骤太多,每一次都需要定义一个实现类,重写send方法,并且new出这个类但事实上我们只需要send方法中的方法体就可以发送邮件了。
2026-05-06 20:42:42
69
原创 Stream流
stream流并不是一个数据结构,因此创建流的时候,对象还在原来的数据结构里面存储的终端部分是整个操作的实际执行部分,会触发前面的所有的中间操作,并生成最终结果,生成最终结果之后前面的流就被废弃了。
2026-05-06 20:42:35
313
原创 Stream简单了解
也可以直接把过滤条件传进来这个条件的意思是:对于集合内的User类起名为user,只保留user中的age<21的可以调用过滤条件的and方法,传入两个过滤条件调用or方法,两个条件是或的关系。
2026-05-06 11:13:46
42
原创 天机学堂DAY01-08
目前项目开发状态1.0在公司中碰到的项目大多都是这样开发了部分项目的情况在开发的不同阶段有不同的测试手段单元测试,程序员在自己的电脑上编写单元测试开始测试代码集成测试,程序员在公共服务器上自己编写测试语句,自己编写请求来验证某个接口组件测试,负责不同的服务的程序员把自己的服务上传到公共服务上进行测试端对端连调,大型的前后端联调。
2026-04-22 11:32:02
160
原创 拦截器...
可以通过Filter过滤器来实现登录校验,但是Interceptor用的更多都是一层的情况下,拦截器和过滤器的不同是在放行的返回值这一块拦截器一般只有一层,用于编写业务逻辑过滤器有可以有很多层过滤器(Filter / Gateway Filter / GlobalFilter)可以编码过滤跨域 CORS限流日志鉴权请求头修改结构:过滤器 1 → 过滤器 2 → 过滤器 3 → Servlet/Controller。
2026-04-22 09:20:20
58
原创 微服务全套
对于单表查询很好用自定义接口继承IService接口自定义实现类继承IService的实现类要传递baseMapper给ServiceImpl(IService的实现类)是因为调用Mapper方法时要知道要调用哪一个类的Mapper。
2026-04-14 11:32:42
466
原创 黑马头条1
进入企业之后很多都是二次开发,已经有一定的代码最顶级的文件是heima-leadnews,1.通常是来定义一些通用的jar包的版本,比如pom.xml,在父工程里面定义了pom.xml文件就不需要在子工程中再次定义。
2026-04-11 11:00:30
68
原创 苍穹外卖需要注意的地方
在执行update和insert方法的时候开启公共字段的自动填充通过反射获取方法签名,从而获取签名中的对数据库的操作类型通过反射获取方法:先获取类,再获取方法通过反射获取的不同方法,对于不同的方法设置不同的数据/*自定义切面,实现公共字段自动填充处理逻辑*///加入切面注解@Aspect//Bean类,交给spring容器管理@Component@Slf4j/*切入点*//*前置通知,在通知中进行公共字段的赋值*/log.info("开始进行公共字段的自动填充");
2026-04-04 21:47:24
369
原创 苍穹外卖2
大部分数据是存储在mysql当中的,mysql是存储在磁盘当中的Redis存储在内存当中,读写性能高,适合存储热点数据(热点数据就是短时间内的大量数据)
2026-04-01 21:55:06
66
原创 数据结构和算法—图
处理操作在递归函数的上面回溯操作在递归函数的下面在中,给出了递归三部曲。讲解中,给出了 回溯三部曲。通常我们递归的时候,我们递归搜索需要了解哪些参数,其实也可以在写递归函数的时候,发现需要什么参数,再去补充就可以。一般情况,深搜需要 二维数组数组结构保存所有路径,需要一维数组保存单一路径,这种保存结果的数组,我们可以定义一个全局变量,避免让我们的函数参数过多。但这种写法看个人习惯,不强求。
2026-03-10 16:51:10
389
原创 html和css
标签选择器是选择了该页面内全部的是这个标签的文字缺点:不能给其中的几个标签来单独改颜色还可以填充背景颜色一个文字可以调用多个类名便于修改(要改的话就不用跑到很多个地方修改,可以一起改),减少了代码量(重复的地方可以换成类的调用),具体有什么类也更直观/*id选择器的口诀:样式#定义,结构d调用,只能调用一次,别人切勿使用*/<>内只写class不写div或其他总是会不报错但是运行不出来。
2026-02-22 17:23:39
558
原创 数组,栈和队列,哈希表
二分查找相关题型有效的完全平方数求X的算术平方根在排序数组中查找元素的第一个和最后一个位置搜索插入位置移除相关元素稀疏数组和队列稀疏数组的应用场景队列队列的应用场景和介绍数组模拟环形队列思路分析图关键就是在于把头节点变成普通节点,在头节点前面再加一个节点,这样头节点就变成了普通的节点//单链表的反转 //经过图片分析可以知道,单链表的反转实际上就是把节点之间的指向反转了就行 //但是要能够从
2026-02-22 16:32:52
588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅