- 博客(640)
- 收藏
- 关注
原创 SpringBoot的两种启动方式原理
使用java -jar默认情况下,不会启动任何嵌入式Application Server,该命令只是启动一个执行jar main的JVM进程,当spring-boot-starter-web包含嵌入式tomcat服务器依赖项时,执行java -jar则会启动Application Server。注意:使用内置tomcat不需要有tomcat-embed-jasper和spring-boot-starter-tomcat依赖,因为在spring-boot-starter-web依赖中已经集成了tomcat。
2025-01-16 17:49:02 486
原创 .NET8.0多线程编码结合异步编码示例
这就是多线程的特点 - 当多个线程并行执行时,它们的具体执行顺序是不确定的,除非我们使用同步机制(如 lock、信号量等)来控制执行顺序。**1、创建一个TestAsyncAction类,添加一个模拟的异步方法TestAction。如下图所示,在thread线程内部执行完成以后,很快就接着执行最后的打印输出方法了。运行程序,查看执行结果。
2025-01-15 18:08:36 698
原创 一文搞懂架构设计的衡量标准:功能性、可用性、性能、可扩展性、安全性、协作效率、复杂度、成本效益
架构设计的首要目标是服务于业务需求。因此,我们不应该盲目追求所谓的"最厉害的"架构,而应该致力于寻找最适合当前业务环境和未来发展需求的架构方案。衡量架构的合理性是一个复杂的过程,需要从多个角度进行全面评估。主要可以从以下视角进行分析:功能需求视角:评估架构是否有效支撑当前业务需求,并具有充分的灵活性以适应未来业务发展。非功能需求视角:评估系统的可用性、性能、可扩展性和安全性等关键技术指标。团队协作视角:评估架构能否有效促进团队协作和提升开发效率,包括复杂度管理和团队协作效率。
2025-01-15 16:57:37 647
原创 速来!JNPF 低代码开发平台数字化赋能企业财务管理创新转型的惊人内幕!
在数字化时代的滚滚浪潮中,JNPF 低代码开发平台宛如一座灯塔,为企业财务管理的创新转型照亮了前行的道路。它以可视化开发、流程自动化、数据驱动决策等强大功能,为企业提供了高效、精准、智能的财务管理解决方案,成功助力企业跨越传统财务管理的重重障碍,实现了财务管理的质的飞跃。通过 JNPF,企业能够轻松搭建个性化的财务应用,极大地提高了财务工作效率,降低了开发成本和运营成本。同时,精准的数据洞察和高效的流程自动化,让企业能够迅速做出科学决策,有效防范财务风险,在激烈的市场竞争中抢占先机。
2025-01-14 17:32:12 543
原创 万字图文:SaaS业务架构、价值流、业务能力、业务流程、业务对象、组织架构
简单来说,端到端流程就是从客户需求发起,到最终客户需求被满足的整个过程。"价值流"与"端到端流程"常被拿来比较。那么,这两者之间有何区别?"价值流"是企业业务的战略蓝图,提供宏观视角,概括了整体价值创造过程。而"端到端流程"则是这个蓝图的具体实施方案,详细描绘了每个环节的操作细节。前文中讲到,通过梳理价值流,我们可以聚焦客户需求,发现哪些环节为客户创造价值,哪些环节存在浪费。然后,基于这些环节,形成高效的端到端流程。它们之间的关系如图所示。从价值流到端到端流程,就是把企业价值创造的过程进行细化。
2025-01-14 17:01:35 751
原创 推荐4款基于.NET开源、功能强大的CMS建站系统
CMS系统作为一种强大的内容管理工具,在数字化时代发挥着越来越重要的作用。无论是个人博客还是大型企业官网,选择一个合适的CMS都能极大地提高效率和用户体验。今天大姚给大家推荐4款基于.NET开源、免费、功能强大的CMS建站系统,希望可以帮助到有需要的同学。
2025-01-14 15:14:28 740
原创 低代码:企业数字化转型与敏捷组织的密钥
低代码开发平台作为企业数字化转型的强大助推器,为打造敏捷组织提供了行之有效的解决方案。它以其高效、灵活、低成本等优势,加速应用开发、降低成本、灵活适配业务变化,促进跨部门协作、实现快速决策、提升组织灵活性。尽管在落地过程中面临一些挑战,但通过科学的实施步骤和有效的应对策略,这些问题都能够得到妥善解决。展望未来,低代码技术前景广阔,将与新兴技术深度融合,为企业带来更多的创新机遇和发展空间。
2025-01-13 17:58:12 632
原创 Python库房管理系统开发指南
通过本文,我们详细介绍了如何使用Python编写一个基本的库房管理系统。该系统包含了商品入库、出库、查询库存及生成报表等核心功能,并且代码结构清晰、易于扩展。读者可以根据自己的需求进一步改进该系统,例如添加用户身份验证、优化用户界面、支持更多数据格式等。这个库房管理系统不仅是一个实用的工具,也是一个学习Python编程和项目开发的良好实践。通过动手实现这样一个系统,读者可以深入理解面向对象编程、文件操作、用户交互等基本编程概念,并积累宝贵的项目经验。
2025-01-13 16:54:11 784
原创 方法引用与lambda底层原理&Java方法引用、lambda能被序列化么?
Apache Flink 是一个开源的分布式流批一体化处理框架。它能高效地处理无界(例如:前端埋点数据,只要用户在使用那么会源源不断的产生数据)和有界(例如:2024年的所有交易数据)数据流,并且提供了准确的结果,即使在面对乱序或者延迟的数据时也能很好地应对。Flink 在大数据处理领域应用广泛,可用于实时数据分析、事件驱动型应用、数据管道等多种场景。如下是一个典型数据管道应用// 1. 创建执行环境// 2. 定义数据源,这里简单模拟一个包含字符串的集合作为数据源。
2025-01-13 15:19:54 1069
原创 解锁民营中小企业数字化转型的“加速密码”
若企业原有的业务系统中有一些特殊的业务模块,如制造业企业的生产排程算法、金融行业的风险评估模型等,技术人员可以基于 JNPF 平台的源码,将这些模块无缝集成到新开发的系统中,实现企业数字化生态的无缝衔接。同时,在面对不断变化的市场需求和技术发展趋势时,企业能够依托源码,自行对系统进行升级和优化,保障了企业在技术层面的长期投资价值,避免被平台供应商绑定,让企业在数字化建设的道路上能够自由驰骋,无后顾之忧。一方面,随着全球化的推进,企业所处的市场环境愈发复杂多变,竞争对手不再局限于本地,而是来自世界各地。
2025-01-10 18:05:34 608
原创 G1原理—G1是如何提升分配对象效率
G1如何满足用户设定的停顿时间?一.预测在停顿时间范围内G1能回收多少垃圾二.G1进行预测的依据其实就是历史数据三.拿到历史数据后G1应该怎么样四.线性算法模型、衰减算法模型如何设计一个合理的预测算法?//上述公式中的α为历史数据权值,1-α为最近一次数据权值//衰减因子α越小,最新的数据对结果影响越大,最近一次的数据对结果影响最大//例如α = 0.6,GC次数为3,三次分别为://第一次回收2G,用时200ms//第二次回收5G,用时300ms//第三次回收3G,用时500ms。
2025-01-10 14:59:52 518
原创 JNPF:开启低代码+AI表单的“智变”新时代
例如,市场部门人员想要快速搭建一个用于收集客户反馈的表单应用,只需在 JNPF 平台上通过拖拽文本框、下拉菜单等组件,就能在十几分钟内完成表单设计,再利用平台的 AI 智能配置功能,一键实现表单数据的存储、查询与报表生成,无需等待技术人员的排期。对于常见的业务功能,如审批流程、数据查询等,平台内置了大量成熟的模板与脚本,开发人员只需根据实际需求进行少量参数配置与逻辑调整,即可满足业务要求,大大减少了代码编写过程中的出错概率,降低了系统的维护成本。例如,小额贷款可自动跳过部分复杂审批环节,由系统快速审批;
2025-01-09 18:16:54 967
原创 Java验证邮箱是否有用的实现与解析
通过本文的介绍,我们了解了如何使用Java和Spring Boot实现邮箱验证功能。通过JavaMail API发送验证邮件,通过控制器处理验证请求,可以确保用户提供的邮箱地址是有效的。在实际应用中,还需要考虑安全性、错误处理、配置管理和日志记录等方面的问题。Java验证邮箱是否有用的实现与解析 - TechSynapse - 博客园引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。
2025-01-09 17:46:49 884
原创 G1原理—G1回收器的分区机制
一.垃圾回收优先G1垃圾回收器:也可以叫垃圾回收优先回收器(Garbage-First,G1)。一句话概括就是:这种垃圾回收器会优先回收垃圾,不会等空间全部占满然后再进行回收。二.停顿预测模型预测一次回收可以回收的分区数量,以满足我们对停顿时间的要求。G1最大的特点:可以设置每次垃圾回收时的最大停顿时间,以及指定在一个长度为M毫秒的时间片段内,垃圾回收时间不超N毫秒。三.化整为零的分区机制ParNew + CMS这种回收器的分区是:新生代、老年代、S区。
2025-01-09 16:59:30 562
原创 AutoGen入门-让两个AI自行聊天完成任务
AutoGen 是一个开源编程框架,用于构建 AI 代理并促进多个代理之间的合作以解决问题。AutoGen 旨在提供一个易于使用和灵活的框架,以加速代理型 AI 的开发和研究,就像 PyTorch 之于深度学习。它提供了诸如代理之间可以对话、LLM 和工具使用支持、自主和人机协作工作流以及多代理对话模式等功能。主要特点AutoGen使得基于多智能体对话构建下一代LLM应用程序变得非常容易。它简化了复杂LLM工作流的编排、自动化和优化。它最大化了LLM模型的性能并克服了它们的弱点。
2025-01-08 18:14:49 267
原创 JVM实战—OOM的生产案例
这个系统是比较早的一个系统,在进行服务间的RPC通信时,采用的是基于Thrift框架封装的RPC框架。然后公司的系统,就是基于这个RPC框架去进行通信。通过源码的分析,我们最终总算搞清楚了,原来当时有这么一个特殊的情况:因为RPC框架要进行对象传输,就必须让服务A和服务B都知道有该对象。举个例子,比如服务A要把一个Request对象传输给服务B。//这里是一堆的自动生成的代码。
2025-01-08 16:36:44 1437
原创 解锁企业数字转型新密码:JNPF低代码让业务“活”起来
以请假流程为例,员工提交请假申请后,系统会按照预设的流程,自动将申请推送给上级领导进行审批,审批通过后,相关部门和人员也会及时收到通知,整个过程高效流畅,大大减少了人为操作的繁琐与延误,提高了工作效率,确保业务流程的顺畅无阻。一方面,企业数字化转型的需求犹如箭在弦上,不得不发。并且,在后续的运营过程中,一旦发现市场需求有新的变化,或是竞争对手推出了新的功能,业务人员无需依赖专业开发人员,自己就能通过平台快速调整页面布局、添加新的促销活动模块,实现应用的快速迭代,始终让业务走在市场前沿。
2025-01-07 14:01:15 1273
原创 JVM实战—OOM的定位和解决
情形一:Metaspace区域溢出通过异常信息可以直接定位出是Metaspace区域发生异常,然后分析GC日志就可以知道Metaspace发生溢出的全过程,接着再使用MAT分析内存快照,就知道是哪个类太多导致异常。情形二:栈内存溢出首先从异常日志中就能知道是栈内存溢出。然后从异常日志中可以找到对应的报错方法。知道哪个方法后,就可以到代码中定位问题。堆内存溢出问题的分析和定位:一是加入自动导出内存快照的参数二是到线上看一下日志文件里的报错如果是堆溢出,则用MAT分析内存快照。
2025-01-07 10:40:03 846
原创 o3 发布了,摔碎了码农的饭碗
在2024年底,OpenAI发布了最新推理模型o3。o3模型相当炸裂,在世界级编程比赛中拿下第175名,打败99.9%的参赛者。AI写代码都赶上顶级程序员了,程序员是不是要失业?最近不少读者反馈,像GitHubCopilot、ClaudeSonnet3.5、Cursor等AI辅助编程工具,能让代码编写效率平均提升20%。有更夸张的,在CRUD多的场景可提升50%以上。
2025-01-07 10:11:57 730
原创 低代码:赋能大企业,重塑数字战斗力
大企业往往历经多年信息化建设,内部系统林立,如 ERP、CRM、OA 等。企业在拓展海外业务时,可利用 JNPF 低代码平台快速构建适配海外市场的营销管理系统,并与国内总部的 ERP 系统集成,确保订单、库存等数据实时同步,既满足定制化需求,又避免重复建设,让企业数字化架构更加灵活、紧密。系统上线数月内,客户满意度提升 25%,销售业绩增长 18%,且凭借低代码平台良好的扩展性,公司能灵活依据市场变化、业务拓展,快速新增如售后管理、客户反馈分析等功能模块,持续强化市场竞争力,为长远发展铺就坚实道路。
2025-01-06 17:47:37 1152
原创 如何设计一个分布式配置中心?
当时的场景是前端发起HTTP请求,调用后端接口修改配置,因为负载均衡的缘故,请求只会打到1台机器上,只有1台机器的内存配置被更新,其他机器的内存配置还是旧的,当时小组一起讨论解决办法,可能认知有限,只想到MQ等等方式,没想到配置中心的原理。这里如果遇到了的话,就可以提到开源社区的活跃性,因为Apollo 的社区生态活跃,且使用的公司特别多,常见的坑基本都被踩完了,所以选用Apollo。最后测试验证,在管理界面增加一个配置,然后对配置修改发布,可以看到客户端已经接收到配置变更的事件了,并且打印出日志信息了。
2025-01-06 16:40:14 545
原创 JVM实战—OOM的原因和模拟以及案例
JVM里的内存溢出到底指的是什么,哪些区域有可能会发生内存溢出?接下来从JVM核心运行原理出发,介绍哪些地方可能会发生内存溢出。可能发生OOM的区域有三块:第一块是存放类信息的Metaspace区域第二块是每个线程的虚拟机栈内存第三块是堆内存空间Metaspace区域发生内存溢出的原理是:Metaspace满了之后先FGC -> 发现回收不了足够空间就OOM。两种常见的触发Metaspace内存溢出原因是:默认JVM参数导致Metaspace区域过小 + CGLIB等动态生成类过多。
2025-01-06 15:00:26 748
原创 JVM实战—如何分析jstat统计来定位GC
一.对象优先在Eden区分配二.Young GC的触发时机和执行过程三.对象进入老年代的时机四.Full GC的触发时机和执行过程接下来介绍如何使用工具分析运行的系统:一.对象增长的速率二.Young GC的触发频率三.Young GC的耗时四.每次Young GC后有多少对象存活下来五.每次Young GC后有多少对象进入老年代六.老年代对象增长的速率七.Full GC的触发频率八.Full GC的耗时。
2025-01-03 17:43:31 1110
原创 JSON解析的这6种方案,真香!
在 Java 开发中,解析 JSON 是一个非常常见的需求。不管是和前端交互、调用第三方接口,还是处理配置文件,几乎都绕不开 JSON。这篇文章总结了6种主流的 JSON 解析方法,希望对你会有所帮助。最后给大家对比一下文章中提到的6种方法各自的优缺点:工具千千万,场景最重要!选对了工具,才能省时省力,少踩坑多摸鱼。苏三说技术引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。
2025-01-03 15:19:48 1143
原创 工业互联网市场矛盾全解析:现状、成因与应对之道
工业互联网作为新一代信息技术与制造业深度融合的产物,正推动着工业经济的数字化转型。然而,在其快速发展的过程中,也暴露出诸多矛盾。本文深入分析了工业互联网市场存在的矛盾,并对这些矛盾进行了解读,旨在为相关从业者和决策者提供参考,促进工业互联网市场的健康发展。
2025-01-02 17:17:55 955
原创 分布式系统架构:链路追踪
OpenTracing是一个开放的API规范,旨在通过提供一套统一的接口,帮助开发人员能够在其应用中实现分布式追踪和一般的规范标准不同,Opentracing 不是传输协议,消息格式层面上的规范标准,而是一种语言层面上的。
2025-01-02 16:19:59 678
原创 Python 虚拟环境:原理解析与最佳实践
1、项目结构推荐├── .venv/├── src/├── tests/├── pyproject.toml # 或 requirements.txt2、环境管理建议所有项目都使用虚拟环境将.venv加入.gitignore使用或更现代的依赖管理工具明确指定依赖版本3、.gitignore 示例# 虚拟环境.venv/venv/ENV/# Python*.py[cod]*$py.class# 包分发dist/build/4、版本控制注意事项。
2025-01-02 14:22:38 745
原创 企业数字化转型的构念及实现路径
企业数字化转型是一个全面而深远的过程,它涉及到企业内部的多个层面,包括但不限于业务模式、运营流程、组织结构以及企业文化。这一转型的核心目的在于充分利用数字技术的潜力,对企业进行根本性的重塑和优化。通过数字化转型,企业能够显著提高工作效率,激发创新活力,并且极大地改善客户体验。这些改进最终将推动业务增长,为企业创造新的价值,确保在竞争激烈的市场中保持领先地位。企业数字化转型是一个系统工程,需要企业从战略到执行的全方位投入。
2024-12-31 17:27:03 900
原创 Java Web学生自习管理系统
综上所述,本次JavaWeb学生自习管理系统的开发是一次宝贵的实践经验,不仅提高了我们的技术水平,也让我们对软件开发有了更深入的认识和理解。以上内容仅供各位开发读者参考,未来,我们将继续优化和完善系统,为学生提供更加便捷、高效的自习管理服务。from=CSDN。
2024-12-31 14:40:56 920
原创 混合云网络过于复杂?ENS给你全局一张网的极致体验
今天要向大家介绍的全新的 ENS 服务,专为政企客户的混合多态环境设计,致力于消除网络孤岛和应用孤岛,为客户提供“一张网”的视角,带来便捷、高效、安全、一致、高性能、稳定且简洁的网络体验。华为云开发者联盟引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。
2024-12-30 17:11:07 603
原创 JVM实战—JVM垃圾回收的算法和全流程
所谓JVM优化,就是尽可能让对象都在新生代里分配和回收。尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收。同时给系统充足的内存大小,避免新生代频繁地进行垃圾回收。新生代和老年代进行垃圾回收时都是用垃圾回收器进行回收的,不同的区域会用不同的垃圾回收器。一.Serial和Serial Old垃圾回收器分别用来回收新生代和老年代的垃圾对象。工作原理就是单线程运行,垃圾回收时会停止我们系统的其他工作线程。让我们系统直接卡死不动,让它们进行垃圾回收。现在的后台Java系统几乎不用这种垃圾回收器了。
2024-12-30 15:52:37 1185
原创 Java多线程处理文件详解与代码示例
通过本文的介绍和代码示例,我们了解了如何使用Java多线程来处理文件。使用多线程技术可以显著提高文件处理的效率,特别是对于大量文件的处理任务。在实际应用中,可以根据具体需求调整线程池的大小和文件处理任务的实现方式。希望本文对你有所帮助,如果你有任何问题或建议,请随时留言交流。引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。
2024-12-27 17:58:51 695
原创 JVM实战—JVM内存设置与对象分配流转
JVM里的永久代其实就是方法区,方法区就是所谓的永久代,可以认为永久代就是放一些类的信息。Java代码里创建出来的对象,一般就是两种:第一种是短期存活的,迅速使用完后就会被垃圾回收;第二种是长期存活的,一直存在Java堆内存里。第一种短期存活的对象,会在Java堆内存的新生代里。第二种长期存活的对象,会在Java堆内存的老年代里。那么对象什么时候进入新生代?什么情况下会进入老年代?目前已介绍如下机制:一.对象优先分配在新生代二.新生代对象满了就会触发垃圾回收把没有被引用的垃圾对象清理掉。
2024-12-27 17:02:48 1400
原创 推荐一个C#轻量级矢量图形库
VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 Mac、Windows 和 Linux。使得开发者可以更容易地在他们的项目中集成矢量图形的生成和处理。
2024-12-26 17:42:54 806
原创 聊一聊 C#线程池 的线程动态注入
我们聊到了两种提升线程注入的方法,尤其是第二种让人意难平,面对上游洪水猛兽般的对线程池进行DDOS攻击,下游的线程不顾一切,倾家荡产的去承接,这是一种明知不可为而为之的悲壮之举一线码农引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。
2024-12-26 16:05:23 733
原创 性能优化!突破性能瓶颈的尖兵CPU Cache
今天我们来介绍计算机的储存器之一,CPU高速缓冲存储器也叫高速缓存,缓存这个专业术语,在计算机世界中是经常使用到的。它并不是CPU所独有的,比如cdn缓存网站信息,浏览器缓存网页的图像视频等,但本文讲述的是狭义Cache,主要指的是CPU Cache,本文将其简称为"缓存"或者"Cache"
2024-12-25 17:53:38 742
原创 Redis-十大数据类型
Reids数据类型指的是value的类型,key都是字符串redis-server:启动redis服务redis-cli:进入redis交互式终端。
2024-12-25 16:12:21 1235
原创 JVM简介—垃圾回收器和内存分配策略
给对象添加一个引用计数器,每当一个地方引用它时就将计数器加1,当引用失效时就将计数器减1,任何时刻计数器为0的对象都不再被使用。这种算法简单,但是有个致命的缺点,就是不能用于相互引用的情况。优点:快、方便、实现简单缺点:对象相互引用时,很难判断对象是否应被回收PHP、Python的垃圾回收就是使用了引用计数算法,Java的垃圾回收使用的是可达性分析。//testGC()执行后, objA和objB会不会被GC呢?//这个成员属性的唯一意义就是占点内存, 以便能在GC日志中看清楚是否有回收过。
2024-12-24 17:35:11 1151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人