- 博客(15)
- 收藏
- 关注
原创 行业发展结合人工智能浅薄认知
结合现在行业发展推测,未来的开发一定大致会分为特异性研发,和基本业务开发。特异性研发旨在发展进步,以及一些机器人、操作系统的特别的领域开发,基本业务开发则是网站,管理系统,等等的开发。这些基本业务开发更多的需要了解业务,而特异性开发则是需要某一领域的深耕。那么这些业务开发,很有可能是人工智能+低代码的开发方式,特异性开发则是需要单一领域专研。另外,低代码平台也会随着人工智能的升级进一步提升,就目前推测,可能出现vue+ai+后端代码的搭配方式来提升低代码平台的灵活性。
2025-03-19 10:30:32
101
原创 java中lambda表达式的合流分流
在Java中,Lambda表达式是用于简化匿名内部类的语法,尤其在处理集合和流(Stream)时显得尤为方便。合流和分流通常与数据流的操作有关,特别是在使用StreamAPI时。
2024-11-22 18:38:42
301
原创 MyBatis-Plus与JPA
基于MyBatis的增强工具库,简化了MyBatis的使用,并提供了许多实用的功能。通过代码生成器、通用Mapper、分页插件等功能来提高开发效率。Java EE(Enterprise Edition)的一部分,是一种用于对象关系映射(ORM)的Java规范。提供了一种简单且标准的方式,使Java开发人员能够进行关系数据库操作,而无需编写复杂的SQL查询。
2024-11-22 18:27:12
583
原创 Spring Boot中的校验
在Spring Boot中,你可以使用Java的Bean Validation API和Spring MVC的自动校验机制来在控制器层校验对象属性。如果你需要在代码中手动校验对象,可以使用Validator接口和Validation类。在Hutool中,你可以使用类提供的静态方法来直接校验字符串和对象。这些方法非常适合于简单的字段校验场景。选择哪种方法取决于你的具体需求和偏好。如果你需要复杂的校验逻辑或注解驱动的校验,Spring Boot的Bean Validation API可能更适合你。
2024-11-22 18:24:26
471
原创 javamelody和spring-boot-starter-actuator
JavaMelody是一个开源的Java应用性能监控工具,旨在帮助开发人员实时监控Java应用程序的性能指标和资源使用情况。它提供了丰富的监控指标,包括但不限于CPU使用率、内存使用情况、数据库查询性能(JDBC、SQL)、HTTP请求响应时间、线程状态、Spring应用上下文信息、JVM性能以及硬盘空间等。这些监控数据通常以图表和报表的形式展示,有助于开发人员快速定位和解决性能问题。
2024-11-22 10:11:47
354
原创 nacos和apollo的配置更新机制
Apollo 配置更新机制Apollo 默认情况下是实时推送配置更新到客户端的,并不需要手动拉取。Apollo 客户端和服务端之间通过长连接进行通信。当配置发生变化时,服务端会主动将更新后的配置信息推送给客户端。不过,在某些特殊情况下,可能会涉及手动拉取。例如,如果客户端与服务端的长连接出现问题,导致推送机制失效,或者客户端因为某些特殊的业务逻辑需要立即获取最新的配置(即使没有收到推送通知),可以通过 Apollo 客户端提供的 API 手动触发配置拉取操作。这种情况相对较少,并且一般是作为一种补充
2024-11-11 14:00:10
462
原创 Apollo和nacos比较
Apollo(携程开源的配置管理中心)优点功能丰富强大:Apollo 提供了完善的配置管理功能,包括配置的编辑、发布、回滚、灰度发布等。例如,在进行应用升级时,可以通过灰度发布功能,先将新配置推送给部分实例进行测试,观察没有问题后再全量发布,这样可以有效降低配置变更带来的风险。它还支持多环境(如开发环境、测试环境、生产环境)的配置管理,并且可以方便地在不同环境之间切换配置。权限管理精细:具有细致的权限管理体系。可以针对不同的用户或角色设置不同的权限,比如某些用户只有读取配置的权限,
2024-11-11 13:57:20
827
原创 Nginx和Gateway的比较
它提供了更为灵活和强大的API管理功能,如动态路由、过滤器链等,可以方便地实现API的限流、熔断、日志记录、鉴权等高级功能。综上所述,Nginx和Gateway在路由功能方面有一定的相似性,但在功能定位、实现原理、应用场景和负载均衡等方面存在明显的区别。:虽然Nginx和Gateway在实现负载均衡的原理上有所不同,但它们都可以实现负载均衡功能,将请求分配到多个后端服务器或微服务实例上,以提高系统的可用性和处理能力。同时,它也可以作为反向代理和负载均衡器,隐藏后端架构细节,提高系统的可用性和扩展性。
2024-11-11 13:51:24
1129
原创 Gateway和Nginx一起使用的原因
相比之下,Gateway是基于Java编写的,虽然Java语言本身具有强大的功能和丰富的生态系统,但在处理高并发请求时,其性能可能受到JVM(Java虚拟机)和垃圾回收机制的限制。综上所述,在Gateway上面再套一个Nginx的做法可以充分利用两者的性能优势和功能互补性,提高系统的整体性能、灵活性和安全性。:Nginx非常适合作为静态资源的服务器,它可以高效地缓存和分发静态文件,如图片、CSS、JavaScript等。在Gateway上面再套一个Nginx的做法,主要是基于两者在性能和功能上的互补性。
2024-11-11 11:59:13
632
原创 java中线程的认识
它是容纳任务动作的一个容器,当你将一整个任务都视为一个动作去启动,就如我们只在一个方法中完成我们所需要的操作,那么这就只有一个线程。方法的调用不是多线程,它只不过是将整体某一个的动作放在另外的地方,最后这个动作仍然归属于调用它的那个方法。在某些情况下,一个任务的动作是可以并行处理的,那么就可以分别使用一个线程去调用,然后组合结果。当这个任务需要多个系统通力合作,这个方法就需要调用不同的系统去完成某一个动作,但是这个方法又不在本地,就可以通过创建线程去调用。3)实现callable接口。
2024-10-07 11:48:11
352
原创 java中锁的认识
当某一个唯一的资源被多个线程同时请求时,两个线程就会去争抢,但是从逻辑上来说每个线程对这个资源的操作是不一致的。死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程都处于等待状态,无法往前执行。因此,满足死锁需要四个条件,线程的互斥,线程对资源的占有且等待,资源的不可抢占,线程的循环等待。第四条: 给系统的所有资源编号,规定进程请求所需资源的顺序必须按照资源的编号依次进行。在提供锁的基本功能的情况下,根据不同的业务场景有不同的实现,也提供了更多其他功能。在高并发的情况下更为优秀。
2024-10-07 11:47:04
359
原创 线程池的理解
线程池是一种池化技术,其实是一种资源复用思想的利用 常见的比如像线程池,连接池 内存池 对象池等这些线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最 大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。主要特点:线程复用;控制最大并发数:管理线程。第一:降低资源消耗。通过重复利用己创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
2024-09-17 15:13:38
302
原创 spring循环依赖的解决方案(“三级缓存”)
spring主要就是通过半成品替代的方式来解决循环依赖的。回到上面,A、B循环依赖的问题,在加载时,当初始化a时,先去一级缓存中查找有没有a对象,有就直接返回。没有则将a的实例化工厂放入三级缓存中,实例化a。发现a需要b对象,就先从一二级缓存中查找b,如果找到b对象就直接返回给,如果没有就将b对象的实例化工厂放入三级缓存,实例化b。发现b需要a对象,就先从一二级缓存中查找a,没有就回去继续初始化a,通过实例化工厂生成一个未装配属性的半成品a对象放入二级缓存,再将三级缓存中的a工厂删除。
2024-09-08 13:44:11
745
原创 文件传输的便捷组件X File Storage初学心得
x file storage 的基本使用非常便捷。在开发者不需要更多的功能的情况下,只需要在引入架包之后,基于自身文件上传的需求配置一个controller,编写好配置文件就完成了。它的内部已经实现了fileStorageService,只需要在启动类上加入注解就会自动配置,然后就可以调用具体的方法处理相关的问题。具体的使用方法可以去看一下。
2024-09-01 16:58:00
749
原创 java的数据类型
基本数据类型由于在存储分配的存储空间不同,就有不同的取值范围。并且数据具有正负性,计算机在根据存储空间分配二进制位数时,会将最高位留出来作为符号位。以byte举例,它占用了一个字节,一个字节会有八位的二进制数,除去符号位计算可得出取值范围。在某些情况下需要这些基本数据类型变为对象类型,于是它每一个都有自己匹配的包装类。引用数据类型就是以对象形式去定义变量的类型,在这种时候我们更关注这个对象的使用,包括它的属性和方法。
2024-08-25 10:18:09
1057
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人