- 博客(246)
- 资源 (1)
- 收藏
- 关注
原创 AI-硅谷小智
本文介绍了基于Java的LangChain4j框架在医疗领域的应用。主要内容包括:1)LangChain4j简介及发展历程,该框架可简化大语言模型(LLM)与Java应用的集成;2)框架核心功能,如统一API访问主流LLM、智能代理和检索增强生成(RAG)等;3)详细的项目搭建指南,包括Maven配置、SpringBoot集成和接口测试;4)具体应用场景,如医疗客服机器人、病历数据处理等。文章还提供了接入大模型的代码示例和测试方法,展示了如何快速构建基于AI的医疗应用系统。
2025-07-29 15:08:35
928
原创 SSE(Server-Send-Event)服务端数据推送
服务端与客户端建立Socket连接进行数据传输,Socket的传输方式是全双工的。WebSocket是基于 TCP 的长连接,和HTTP 协议相比,它能实现轻量级的、低延迟的数据传输,非常适合实时通信场景,主要用于交互性强的双向通信。客户端通过频繁请求向服务端请求数据,达到类似实时更新的效果。轮询的优点是实现简单,但是会给服务端和网络带来额外的压力,且延迟较高。实现效果如下:服务端不断推送数据到前端,前端可以也可以调用接口主动关闭连接。适用场景:SSE由于是服务端单向通讯,所以适合那种需要单向持久的连接。
2025-07-21 14:02:24
284
原创 Commons-lang3
常用工具类commons-lang3的学习使用-CSDN博客apache提供的众多commons工具包,号称Java第二API,而common里面lang3包更是被我们使用得最多的。因此本文主要详细讲解lang3包里面几乎每个类的使用,希望以后大家使用此工具包。BeanUtils提供对Java反射和自省API的包装,其主要目的是利用反射机制对JavaBean的属性进行处理,简化JavaBean封装数据的操作。好处: BeanUtils给对象封装参数的时候会进行类型自动转换。
2025-07-17 15:44:59
545
原创 使用 Spring Boot + AbstractRoutingDataSource 实现动态切换数据源
功能说明数据源上下文管理工具支持嵌套切换线程隔离AOP + 注解实现优雅的数据源切换推荐使用的封装库。
2025-07-17 14:52:31
726
原创 深入理解Optional
Optional 是 Java 8 引入的一个容器类,用于表示一个可能为空(null)的值。通过使用 Optional,我们可以避免常见的空指针异常(NullPointerException),并且使得方法签名更加清晰,增强代码的可读性。是 Java 8 引入的强大工具,能够使得代码更加简洁和安全,避免常见的空指针异常。能够大大提升代码的可读性和可维护性,但也要避免过度使用,避免性能开销。,你可以明确表示值的缺失,并且通过链式调用,优雅地处理可能为空的值。中的值存在,则返回值,否则返回提供的默认值。
2025-07-16 09:20:02
736
原创 JAVA中的枚举类
枚举类型就是多例,一个类有多个实例,但是实例的个数不是无穷的,是有限的;枚举类中实例称为枚举项,一般一个枚举类不应该有太多的枚举项。使用enum关键字,例如注意:定义枚举类型的关键字是enum,而不是Enum,所有关键字都是小写的。其中 FRONT,BEHIND,LEFT,RIGHT 都是枚举项,它们都是本类的实例,也就是说本类只有四个对象。在定义枚举项时,多个枚举项之间用逗号隔开,最后一个用分号结尾,如果枚举类型中只有枚举项(没有构造器、方法、变量),那么可以省略分号,但是不建议省。
2025-07-15 15:37:32
389
原创 基于注解的代码生成工具MapStruct映射使用详解
在 Java 开发中,我们经常需要在不同的 Java Bean 之间进行数据映射,比如从实体类(Entity)到数据传输对象(DTO)的转换。传统的做法是手动编写大量的 setter 和 getter 方法来完成属性的赋值,这种方式不仅繁琐,而且容易出错。MapStruct 作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案。它在编译时自动生成映射代码,避免了运行时反射带来的性能开销,同时保证了类型安全。// 用户实体类@Data// 用户数据传输对象类。
2025-07-15 13:31:11
311
原创 Java陷阱之assert关键字详解
Assert.isTrue()方法用于断言条件是否为真,如果条件不满足(即为false),则会抛出IllegalArgumentException,并附带预设的错误信息。此方法常用于单元测试中确保代码行为符合预期。Assert.isTrue(express,message) 是指测试指定的条件是否为True,如果为True,则测试通过,如果表达式express为false,则才输出信息。发现,当expression为true时则通过,不发生异常,当expression为false时,则会抛出异常。
2025-07-14 10:17:37
332
原创 集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
这样就配置完毕啦,当我们使用 git commit -m “xxx” 时,lint-staged 会自动执行帮我们进行代码质量与风格的修复。配置完成之后我们对代码风格的配置只会使用prettier的配置,相当于将eslint中冲突的规则覆盖掉了。运行之后就会出现.husky文件夹,之后我们就可以配置在GItHook中执行的操作啦😀。我们还可以配置忽略文件,让 StyleLint 不对这些文件进行校验。我们还可以配置忽略文件,让 ESLint 不对这些文件进行校验。然后配置一个初始化 Hysky 的命令。
2025-07-10 17:03:15
358
原创 封装axios
router在使用过程中如果我们直接在一个文件的一个数组中配置,最后路由越来越多会导致不易管理,我们可以将一个页面的路由配置在一个数组中最后统一导入,这样就会方便很多。我们在/src/api下建立不同的文件夹代表不同类型的API,在index.ts中编写接口配置,在types.ts中编写接口所需的请求参数类型以及响应类型。使用的时候我们可以直接在组件中引用,也可将其封装在store的action中,将相关的store与接口关联起来。使用的时候我们直接在需要使用store数据的组件中引用并使用即可。
2025-07-10 16:59:20
368
原创 《Docker环境下的前后端分离部署与运维》课程脚本
先更新软件包安装Docker虚拟机运行、重启、关闭Docker虚拟机搜索镜像下载镜像查看镜像删除镜像运行容器查看容器列表停止、挂起、恢复容器查看容器信息删除容器数据卷管理网络管理避免VM虚拟机挂起恢复之后,Docker虚拟机断网文件中添加这个配置。
2025-07-10 16:53:43
311
原创 项目起步(小兔仙儿PC)
目的:使用vue-cli创建一个vue3.0项目。第一步:打开命令行窗口。第二步:执行创建项目命令行第三步:选择自定义创建第四步:选中vue-router,vuex,css Pre-processors选项第五步:选择vue3.0版本第六步:选择hash模式的路由第七步:选择less作为预处理器第八步:选择 standard 标准代码风格第九步:保存代码校验代码风格,代码提交时候校验代码风格第十步:依赖插件或者工具的配置文件分文件保存第十一步:是否记录以上操作,选择否。
2025-07-09 10:47:23
589
原创 项目介绍(小兔仙儿PC)
目的:了解下项目的基本功能。电商发展十余年,是个成熟的模式,小兔鲜儿是B2C电商平台,综合品类平台。平台理念:(品质)新鲜、(价格)亲民、(物流)快捷。总结:完成电商支付闭环。
2025-07-09 10:41:30
853
原创 MyBatis框架中Example类
Example.andIn():用于添加一个“in”条件,指定字段的值必须在给定的集合中。:用于添加一个“equal to”条件,指定字段的值必须等于给定的值。:用于添加一个“between”条件,指定字段的值必须在给定的范围之间。
2025-07-08 14:32:19
936
原创 Mybatis代码生成器Mybatis Generator (MBG)实战详解
本文我们主要实战Mybatis官方的代码生成器:Mybatis Generator(MBG),掌握它以后,可以简化大部分手写代码,我们只需要写复杂逻辑代码!创建与MySQL表对应的Java PO对象,字段一一对应;创建Mapper接口,和对应的XML映射文件(或注解)。首先是PO对象,我们往往创建与数据库表字段一一对应的PO对象;其次在Mapper里,通常都会写基本的增删改查代码。
2025-07-07 11:19:09
758
原创 Docker环境下的前后端分离部署与运维
先更新软件包安装Docker虚拟机运行、重启、关闭Docker虚拟机搜索镜像下载镜像查看镜像删除镜像运行容器查看容器列表停止、挂起、恢复容器查看容器信息删除容器数据卷管理网络管理避免VM虚拟机挂起恢复之后,Docker虚拟机断网文件中添加这个配置。
2025-07-06 14:13:16
420
原创 MQTT 客户端编程
具体步骤如下所示:1、初始化vue项目2、安装element plus3、导入课程资料中的MqttDemo.vue页面到components文件夹下4、更改App.vue页面代码如下所示。
2025-07-04 14:01:16
292
原创 【无标题】
通常情况下,认证只是验证了客户端的身份是否合法,而该客户端是否具备发布、订阅某些主题的权限,还需要由授权系统来判断。在 EMQX 中,授权是指对 MQTT 客户端的发布和订阅操作进行权限控制。授权检查器链:1、EMQX支持多种授权检查机制:基于ACL文件(默认配置)、基于内置数据库、基于MySQL进行授权、基于 MongoDB 进行授权 、基于 PostgreSQL 进行授权 、基于Redis进行授权、基于HTTP应用进行授权 …2、EMQX 支持用户通过配置多个授权检查器构成授权链。
2025-07-04 13:59:56
579
原创 MQTT进阶
QoS 0 是最低的 QoS 等级。QoS 0 消息即发即弃,不需要等待确认,不需要存储和重传,因此对于接收方来说,永远都不需要担心收到重复的消息。为了保证消息到达,QoS 1 加入了应答与重传机制,发送方只有在收到接收方的 PUBACK 报文以后,才能认为消息投递成功,在此之前,发送方需要存储该 PUBLISH 报文以便下次重传。
2025-07-04 13:43:29
555
原创 MQTT入门
EMQX,是一款实现了MQTT协议的,开源的MQTT消息代理软件。MQTT定义了消息通讯的规则和流程,而EMQX则是遵循这些规则的软件,使得设备能够依据MQTT协议进行有效通信。在新版本的EMQX中同时支持MQTT3.1.1协议和5.0协议。官网地址:https://www.emqx.com/zh其他代理软件:https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison。
2025-07-04 12:43:05
889
原创 Docker部署Nacos v2.1.1
DockerDocker是一个容器化平台,允许开发者将应用程序及其依赖打包到轻量级、可移植的容器中。容器化技术:利用Linux内核的cgroups和namespaces实现资源隔离,确保应用在不同环境中运行一致性。快速部署与跨平台支持:容器镜像可在任何支持Docker的环境中运行,简化开发、测试到生产的全流程。轻量级与高效性:相比传统虚拟机,容器共享主机操作系统内核,启动更快且资源占用更低。典型应用场景包括本地开发环境搭建、持续集成/持续部署(CI/CD)及分布式应用部署。Nacos。
2025-07-03 14:43:10
761
原创 第二章:面向对象
面向对象是程序中一个非常重要的思想,它被很多同学理解成了一个比较难,比较深奥的问题,其实不然。面向对象很简单,简而言之就是程序之中所有的操作都需要通过对象来完成。一切操作都要通过对象,也就是所谓的面向对象,那么对象到底是什么呢?这就要先说到程序是什么,计算机程序的本质就是对现实事物的抽象,抽象的反义词是具体,比如:照片是对一个具体的人的抽象,汽车模型是对具体汽车的抽象等等。程序也是对事物的抽象,在程序中我们可以表示一个人、一条狗、一把枪、一颗子弹等等所有的事物。一个事物到了程序中就变成了一个对象。
2025-07-02 13:50:56
720
原创 第一章 快速入门
TypeScript是JavaScript的超集。它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用。相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能;TS可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题;
2025-07-02 13:49:13
572
原创 css伪类:last-child或:first-child不生效
1.:first-child,:last-child生效的前提:first-child只在被选中的第一个元素前面没有其他元素才生效;:last-child只在被选中的最后一个元素后面没有其他元素时才生效。
2025-06-30 15:58:42
319
原创 web布局27
理论上,响应式 Web 页面能够适应不同的终端设备:如果用一句话来描述响应式 Web 设计的话,我觉得这句最经典:“”,即 “如果将屏幕看作容器器皿,那么内容就像水一样”,可以随着器皿的不同成不同的形状:这也正如 @Ethan Marcotte 所言: “未来我们应该这样,随着访问网页的设备增加,我们不会为每个设备单独设计,而只会做一份设计,把每个设备作为这份设计要照顾的一个方面也就是说,每个设备上都会去追求最佳的用户体验,设计会自动适应各个设备。
2025-06-27 11:53:34
878
原创 web布局26
使用上面这种方式,虽然能让 UI 元素尺寸大小根据视窗大小做出动态计算,从而实现完美的像素级缩放,但其还是略有不完美之处,因为不管视窗的大小,最终都会影响到计算值,也会影响到 UI 界面的最终效果。最后提醒大家一下,在一些设备上它还是有一定兼容性风险的,主要是 CSS 比较函数,以及 CSS 的容器查询,支持的设备到目前为止还是有一定的限制。虽然这种技术方案有一定的缺陷,但它更具扩展性,配合 CSS 媒体查询和容器查询等特性,可能会让未来的布局更具扩展和灵活性,而且也能更好地适配于更多的智能终端。
2025-06-27 11:52:40
683
原创 web布局25
这里所说的基本形状是指可以让 Web 开发者生成更抽象的几何化 Web 布局,而不仅仅是简单的矩形和正方形。换句话说,就是使用 CSS Shapes 中的绘制的基本形状。简单地说,你可以在一个元素上运用属性指定的值,为元素应用形状。主要包含了circle()ellipse()inset()和polygon()circle(),它等于;椭圆形ellipse(),它等于;矩形inset(),它等于;多边形polygon(),它等于。
2025-06-27 11:51:49
752
原创 在访问指定 URL(如 /chat)时加载特定的 JS 脚本,离开该页面时移除动态加载的 <script> 标签
【代码】在访问指定 URL(如 /chat)时加载特定的 JS 脚本,离开该页面时移除动态加载的 <script> 标签。
2025-06-27 09:39:29
319
原创 函数式编程
什么是函数呢?函数即规则数学上:INPUTf(x)OUTPUT1?12?43?94?165?25fxx2f(x) = x^2fxx2是一种规律, input 按照此规律变化为 output很多规律已经由人揭示,例如em⋅c2em⋅c2程序设计中更可以自己去制定规律,一旦成为规则的制定者,你就是神。
2025-06-26 10:33:18
33
原创 web布局24
直到现在,大多数的 Web 设计和布局都是以设计为导向,因为在构建 Web 布局时,都是基于设计师提供的设计稿(模板)来完成。因此,你不难发现,现存于线上的很多 Web 页面上的元素大小(尺寸)基本上都设置了固定的尺寸,而且这些尺寸是根据最初设计师提供的稿子定义的。事实上呢?Web 的数据是动态的,服务端吐出的数据与最初设计稿内容有可能并不匹配(有多,也有少),此时呈现给用户的 Web 页面并不是最佳的(有可能很多空白空间未利用,有可能内容溢出容器,打破布局)。
2025-06-25 09:29:07
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人