- 博客(106)
- 资源 (11)
- 收藏
- 关注
原创 Spring Boot整合MCP让你的CRUD系统秒变AI助手
将传统的CRUD系统升级为AI助手可以显著提升用户体验和系统智能化水平。以下是使用Spring Boot整合MCP(Message Conversation Platform)实现"对话即服务"的完整方案:2. 技术选型 核心框架:Spring Boot 3.x对话平台:可选方案微软Bot Framework阿里云智能对话机器人腾讯云智能对话平台开源方案Rasa/DialogflowNLP处理:HanLP/Stanford NLP (中文场景)API网关:Spring Cloud Gatew
2025-04-01 17:20:10
902
原创 版本控制GIT的使用
克隆仓库到本地。在本地进行代码修改。使用git add添加更改到暂存区。使用git commit提交更改。使用git push将更改推送到远程仓库。通过这些步骤,你就可以在 GitCode 上进行代码提交了。
2025-03-24 11:04:44
484
原创 API架构风格
SOAP 严格的消息结构,安全性和授权功能使其成为在 API 和客户端之间执行正式软件协议的最合适的选择,同时又符合 API 提供者与 API 使用者之间的法律合同。服务端在接受到消息后,将信息的内容反序列化,执行所请求的操作,然后将结果发送回客户端。因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。创建新函数非常容易。因此,相较于重新编辑现有的函数,我们会倾向于创建新的功能,最终产生大量难以理解的、功能重叠的函数。
2025-03-24 10:55:21
1138
原创 java多线程实现方式
Java 提供了多种多线程实现方式,选择取决于具体需求:Thread或Runnable。Callable和FutureTask。高效管理线程:线程池(。。。
2025-03-07 15:44:33
494
原创 java 多线程的运用场景
Java 多线程适用于需要并发、异步、实时处理的场景,合理使用可以提升性能和响应速度,但需注意线程安全和资源竞争问题。
2025-03-07 15:36:06
280
原创 Java中的集合
Java 集合框架提供了丰富的接口和类,用于处理不同类型的集合。接口实现类特点ListArrayListLinkedList有序,允许重复SetHashSetTreeSet无序,不允许重复QueueLinkedList队列,先进先出或优先级排序MapHashMapTreeMap键值对,键不允许重复并发集合线程安全根据实际需求选择合适的集合类,可以提高代码的效率和可读性。
2025-03-06 18:01:35
687
原创 Spring实战spring-ai运行
通过以上步骤,你可以快速创建一个 Spring Boot 项目并集成 OpenAI 的功能。根据实际需求,你可以进一步扩展和优化这些功能,例如添加日志、异常处理、性能优化等。
2025-03-06 15:51:15
977
原创 IDEA如何查看每一行代码的提交记录
在idea开发过程中,不同人员之间提交代码的记录可以通过安装插件GitToolBox插件并利用其功能查看每行代码提交的记录。包括提交者,时间在代码都能看清。
2025-02-26 14:01:31
631
原创 java中@IdCardDesensitize的使用说明
@IdCardDesensitize是一个用于身份证号脱敏的注解,在java开发中,处理敏感数据时,我们常常需要对身份证号等敏感信息进行脱敏处理。通过使用@IdCardDesensitize注解,可以在数据传输或存储过程中自动对身份证号进行脱敏处理,从而保护用户的隐私。可以通过在字段上使用@IdCardDesensitize注解来四线身份证号码的脱敏。实现原理@IdCardDesensitize注解的实现通常涉及到自定义注解和相应的处理逻辑,具体实现步骤如下:创建一个注解@IdCardDesens
2025-02-19 15:04:21
247
原创 spring security认证和授权流程
spring框架中的一个安全框架,它提供了全面的安全解决方案,包括认证(Authentication)和授权(Authorization)下面我介绍下spring security认证和授权的流程。
2025-02-18 17:21:01
478
原创 SQL语句count的用法
count(*) 会计算表中所有行的数据,包括所有列,不考虑列中的值是否为空,它是最常用的形式,因为SQL引擎通常会对它进行优化,使其执行效率最高。count(1)和count(*) 在功能上是等价的,都是计算所有行的数量,数字1在这里只是一个常量,不表示特定的列。这意味着,如果某行的该字段值为NULL,这行就不会被计入总数。优点:简单直观,计算整个表的行数,大多数SQL引擎会对count(*)进行优化。缺点:理论上,由于需要检查所有列,虽然实际上引擎会优化这个检查。进行优化,但在现代数据库系统中,
2025-02-07 17:58:51
289
原创 API请求方式的区别
除了GET和POST之外,HTTP还定义了其他几种方法,它们各自有特定用途PUT:用于更新指定资源,或创建新的资源如果该资源不存在的话。它是幂等的。DELETE:用于删除指定资源。同样,它也是幂等的。HEAD:类似于GET,但它只请求资源的头部信息,而不返回主体内容。OPTIONS:用于描述目标资源所支持的通信选项。PATCH:用于对资源进行部分修改,而不是像PUT那样替换整个资源。小结:尽管POST请求在很多方面具有优势,但并不意味着在所有情况下都应该使用POST请求。
2025-01-21 17:25:23
623
原创 java业务逻辑判断
在平时的业务开发中,空指针出现的频率是比较高的bug,在出现空指针的时候,很多小伙伴都是习惯性地加!ObjectUtils中的isEmpty()这个方法可以对字符串,数组,Map集合,List集合进行是否等于null的判断。=null 的判断时,请停顿一下,看一下我们要做判断的这个数据是什么类型的?StringUtils工具类比较有针对性,是针对String字符串的工具类。在isEmpty方法中,既有为null的判断,也有是否等于空字符串的判断。这些工具类都是Java,Spring框架自带的工具类。
2025-01-21 16:32:19
406
原创 java字符串处理
例如:http://www.baidu.com?logId=123&sdt=091....等等这些。然后java实体就可以根据对应的属性直接去取值了。在业务开发中一个url地址后面拼接了好多参数例如。
2024-12-30 16:30:08
188
原创 MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题在MyBatis Plus中,针对大数据量查询慢的问题,可以采取以下几种策略来优化:使用分页查询:使用Page对象进行分页,MyBatis Plus可以自动处理分页逻辑,优化数据查询。避免全表查询:尽量使用有效的查询条件,避免全表扫描。使用索引:确保查询字段上有合适的索引,可以显著提高查询速度。使用批量查询:如果需要查询的数据量很大,可以考虑分批次查询。读写分离:通过数据库的读写分离来提高查询性能。
2024-12-09 17:37:09
1238
原创 SpringCloud技术中@FeignClient()的使用
Spring Cloud 中用于声明一个 Feign 客户端的注解。由于SpringCloud采用分布式微服务架构,难免在各个子模块下存在模块方法互相调用的情况。比如订单服务要调用库存服务的方法,@FeignClient()注解就是为了解决这个问题的。Feign 是一个声明式的 Web Service 客户端,它的目的是让编写 HTTP 客户端变得更简单。通过 Feign,只需要创建一个接口,并使用注解来描述请求,就可以直接执行 HTTP 请求了。
2024-12-04 17:56:30
554
1
原创 Java8 LocalDateTime的使用
里面添加了许多的新特性,如LocalDate、LocalTime、LocalDateTime新增的主要有三种java.time.LocalDate ->只对年月日做出处理默认格式:yyyy-MM-dd, 例如:2021-11-29java.time.LocalTime ->只对时分秒纳秒做出处理默认格式:HH:mm:ss.SSSSSSSSS 例如:11:23:40.051942200java.time.LocalDateTime ->同时可以处理年月日和时分秒。
2024-12-04 17:10:53
643
原创 @PermitAll注解和@PreAuthorize注解
是一个标记注解,用于指示一个特定的类或方法可以被任何用户访问,无论用户是否经过身份验证或拥有任何特定的角色。这个注解通常用于那些不需要进行权限校验的接口或方法上。在Spring Security中,@PermitAll注解可以应用于Controller层的方法上,表示该方法所对应的URL可以被所有用户访问,无需进行权限校验。方法使用了@PermitAll注解,意味着无论用户是否具有相应的权限,都可以访问。例如公开的API端点或主页,希望任何人都能访问,可以使用@PermitAl注解。
2024-11-22 18:48:51
783
原创 前端VUE项目启动方式
将VUE项目的前端项目运行起来,整个过程非常简单,预计5分钟就可以完成,取决于大家的网速。也可以将npm run dev 命令替换成npm run front 命令。项目运行先安装Node.js。
2024-11-22 18:42:35
419
原创 Java中 @Schema注解的作用
通过example属性,可以给出字段的示例值,这样在生成的API文档中能更清晰地展示字段相关信息,方便使用者了解接口所涉及的数据结构。additionalProperties:当属性是一个对象,且对象的属性未知或动态时,可以使用此属性来描述对象中可以包含哪些其他属性。模型描述:为整个API模型(如请求或响应的复杂对象)提供描述,包括标题、描述、属性列表等。属性描述:为API模型中的单个属性提供描述,包括类型、格式、是否必需、默认值、示例值等。enum:如果属性是一个枚举类型,可以列出所有可能的值。
2024-11-21 11:04:51
531
原创 idea项目运行时 java: 错误: 不支持发行版本 21
java项目运行时,同样的项目别的都是正常运行,单个这个项目一直报java: 错误: 不支持发行版本 21,报错的解释这个错误表明你正在尝试使用Java编译器编译一个类,但是编译器遇到了一个它不支持的版本号,在这个上下文中,“21”很可能是指java的版本号,也就是Java 21 但是这个版本目前尚未发布,可能是一个未来的版本。
2024-11-15 10:18:45
2985
1
原创 Java中消息队列
MQ是Message Queue的缩写,也就是消息队列的意思,它是一种应用程序对应用程序的通信方法,使得应用程序能够通过读写出入列队的消息来进行通信,而无需要使用专用的连接来链接它们。消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削峰等问题。实现高性能,高可用,可伸缩和最终一致性架构,在消息队列中有生产者和消费者两种角色,生产者负责发送消息到消息队列,而消费者从消息队列中取出数据进行处理,这种方式实现生产者和消费者之间的解耦,使得他们可以独立运行和扩展。优点。
2024-10-22 20:08:17
818
原创 Spring Cloud 远程调用方式
目前很多公司业务调用开启web服务依赖于内部封装的tomcat容器,适应大流量的微服务,采用Tomcat处理HTTP请求,开发者编写Json作为资源传输,服务器做出相应的相应,可以灵活的处理业务数据,而HTTP协议是跨平台的,符合微服务B/C数据交互的方式,可以是一套服务器对应移动H5,APP,小程序提供服务。
2024-10-22 14:25:03
584
原创 “重复代码”处理方式
第一种代码重复是,有多个并行的类实现相似的代码逻辑。我们可以考虑提取相同逻辑在父类中实现,差异逻辑通过抽象方法留给子类实现。使用类似的模板方法把相同的流程和逻辑固定成模板,保留差异的同时尽可能避免代码重复。同时,可以使用 Spring 的 IoC 特性注入相应的子类,来避免实例化子类时的大量if…else代码。第二种代码重复是,使用硬编码的方式重复实现相同的数据处理算法。
2024-10-22 12:44:25
904
原创 医疗HIS业务的发展
一般医院的HIS系统都会包含基础的system 也就是分配用户基本权限的,财务线,工作站,医生站,药品物质等模块。医生站分为护士站护士核对药品和医嘱,医生开单等功能点。财务线分为自费患者收费,医保患者收费。
2024-10-20 23:00:23
292
原创 JVM调优总结
以上三种严格地说还算不上jvm的调优,只是用了jvm工具把代码中存在的问题找了出来。我们进行jvm的主要目的是尽量减少停顿时间,提高系统的吞吐量。但是如果我们没有对系统进行分析就盲目去设置其中的参数,可能会得到更坏的结果,jvm发展到今天,各种默认的参数可能是实验室的人经过多次的测试来做平衡的,适用大多数的应用场景。如果你认为你的jvm确实有调优的必要,也务必要取样分析,最后还得慢慢多次调节,才有可能得到更优的效果。
2024-10-20 22:57:23
898
原创 项目分层开发中,DTO、BO、PO、VO的含义
VO是视图层的对象,通常用于封装展示给用户的数据,它可以和数据库表对应,也可以根据UI界面需求进行定制。VO的主要目的是在页面展示时只携带必要的数据,从而避免把大量不必要的数据暴露给前端。PO主要用来表示数据库表的一条记录,它的属性和数据库表的字段相对应。BO代表了业务逻辑层中的对象,封装了与某个业务相关的数据以及针对这些数据的操作逻辑。在后端开发中,比如传统的MVC架构和现在流行的DDD架构,经常回使用到几种对象的概念。UserDTO是一个大的入口,它可以接收整个模块的参数。在后端开发中是这么使用的。
2024-10-20 11:25:56
593
原创 Spring Boot 接口数据加解密
OK,客户端请求加密-》发起请求-》服务端解密-》业务处理-》服务端响应加密-》客户端解密展示,看起来没啥问题,实际是头天下午花了2小时碰需求,差不多花1小时写好demo测试,然后对所有接口统一进行了处理,整体一下午赶脚应该行了吧,告诉H5和安卓端同学明儿上午联调(不小的大家到这个时候发现猫腻没有,当时确实疏忽了,翻了大车......)次日,安卓端反馈,你这个加解密有问题,解密后的数据格式和之前不一样,仔细一看,擦,这个userType和registerTime是不对劲,开始思考:这个能是哪儿的问题呢?
2024-10-20 11:10:21
2061
原创 JAVA面试题
select to_date('2019-10-25 17:15:20','yyyy-MM-dd HH24:mi:ss') 字符串。select DATE_FORMAT(SYSDATE(),'%Y 年%m 月%d 日') MySQL 日期转字符 ……select to_char(sysdata,'YYYY"年"MM"月"DD"日"') 时间转字符串 from。回 1,2,3,另外的一次返回 2,1,3). Limit 限制的是从结果集的 M 位置处取出 N 条。redis 的安装(windows)
2024-10-18 16:15:04
1006
原创 nginx配置信息
nginx是一个高性能的HTTP和反向代理web服务器,同时也是提供了IMAP/POP3/SMTP服务。作为HTTP服务的作用:包括静态文件服务,反向代理服务器的原理和功能以及负载均衡和虚拟主机的配置。nginx是负载均衡器,不提供直接的轮询,但是通过upstream模块实现负载均衡来间接实现轮询,在nginx中,可以通过least_connip_hash或者hash方法来设置轮询策略。所有的配置信息都是在nginx.conf中完成的。nginx的upstream支持6种方式的分配算法分别是。
2024-10-17 17:39:23
658
原创 Java日志规范
在程序中写日志是一件非常重要的事情,但是很容易被开发人员忽视。写好程序的日志可以帮助我们大大减轻后期维护的压力,在实际的工作中,开发人员往往迫于巨大时间压力,而写日志又是一件非常繁琐的事情,往往没有引起足够的重视。在开发中,开发人员应该在一开始就养成良好的日志撰写习惯,并且应在实际的开发中为写日志预留足够的时间。
2024-10-17 16:56:29
1071
原创 Java分布式锁
每种方法都有其优点和适应的场景,数据库通常简单,但可能存在性能问题,redis非常快,但需要第三方库,并且可能引入网诺问题,Zookeeper提供了更复杂的同步原语,但需要额外学习曲线。分布式锁的实现比线程锁和进程锁要复杂得多,因为它需要在网诺中的多个节点之间进行协调,以保证锁的唯一性和一致性。在实现分布式锁时,通常会有一个中心节点(或者称为锁服务),所有需要获取锁的节点都需要向这个中心节点申请。这个中心节点负责协调和管理所有节点的锁请求,确保锁的唯一性和一致性。创建临时节点,执行业务逻辑,释放锁。
2024-10-12 22:35:37
1295
原创 Jenkins打包,发布,部署
Jenkins是一个开源的持续集成工具,主要用于自动构建和测试软件项目,以及监控外部任务的运行。与版本管理工具(如SVN,GIT)和构建工具(如Maven,Ant,Gradle)结合使用,实现持续部署和持续构建的功能。Jenkins的特点:开源:Jenkins是免费的,任何人都可以使用和修改其源代码跨平台:可以在Windows,Linux,MacOS等多种操作系统上运行插件丰富:用于大量的插件,可以扩展其功能,满足各种开发需求易于使用:提供只管的用户界面,即使是初学者也能快速的上手。
2024-10-08 12:19:47
6470
原创 Nacos的应用
它是阿里巴巴开源的项目,整合了配置管理,服务管理,服务发现的功能,核心价值在于帮助用户在云平台。可以通过访问Nacos控制台来检查服务是否成功注册,默认情况下,控制台可以通过Ip:8848/nacos访问,登录进入后,你应该可以在服务列表中看到刚刚启动的服务信息。随后运行这个SpringBoot 应用,它将自动注册到Nacos Server,并且Nacos会获取到服务的一些基本信息如服务名,IP地址,端口号等。Nacos的主要功能包括服务发现与注册,动态配置管理,服务健康监测,流量管理和路由。
2024-10-07 19:22:05
454
原创 SpringBoot线程问题
程序,线程,线程池进程是资源分配最小单位,线程是程序执行的最小单位。计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行相应的分配,每个进程都有相应的线程,在执行程序是,实际上是执行相应的一系列线程。线程:程序执行流的最小执行单位,是行程中实际运作单位,经常容易和进程这个概念混淆简单来说,一个应用程序的运行就可以被看做是一个进程。是运行中实际的执行任务者,可以说,进程中包含了多个可以同时运行的线程。线程的生命周期。
2024-10-04 11:27:42
613
1
消息提示框
2014-11-14
My97DatePicker日期控件
2014-11-14
mysql存储过程--根据主表创建一张副表导入数据(分表)
2014-06-09
JAVA-支付支付问题
2024-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人