- 博客(167)
- 收藏
- 关注
原创 Java研学-MongoDB(一)
MongoDB是一种高性能的NoSQL文档数据库,采用BSON格式存储数据,具备灵活的数据模型和强大的扩展性。与SQL数据库相比,MongoDB在概念上有对应关系(如Database、Collection对应Table),但支持更复杂的文档结构和嵌入式设计,适合应对"三高"需求(高性能、海量存储、高可用性)。典型应用场景包括社交、电商、物流和物联网等领域。部署方式分为Windows和Linux两种:Windows需下载社区版并配置数据/日志目录;Linux需下载tgz包,配置相关目录和防
2025-05-31 12:29:12
1137
原创 Linux研学-用户解析
Linux系统权限管理摘要 Linux系统中,root是最高权限账户(UID=0),可通过su命令切换用户身份,exit退出当前会话。sudo机制允许普通用户临时执行root权限命令,需在/etc/sudoers中配置权限。用户与用户组管理包括:使用useradd/groupadd创建、userdel/groupdel删除,通过usermod修改用户组归属,id和getent查看用户信息。文件权限由10位字符表示,包括类型(rwx)和三类用户权限。chmod命令修改权限,支持-R递归操作和符号/数字模式。关
2025-05-31 12:27:53
908
原创 Linux研学-入门命令
Linux与Windows目录系统对比摘要(149字) Linux采用树型目录结构,以根目录"/"为核心,路径用"/"分隔,形成逻辑严密的层级体系,便于统一管理。Windows则采用盘符分区(C:、D:等),路径用""分隔,文件分散存储。Linux用户拥有专属/home目录存放个人文件,工作目录默认为当前操作位置。基础命令包括:ls(带-a-l-h选项列出内容)、cd切换目录、pwd显示路径、mkdir(-p创建多级目录)、touch创建文件。通过
2025-05-30 21:44:03
753
原创 Linux研学-环境搭建
本文介绍了Linux与虚拟机的基础概念及环境搭建方法。首先概述Linux系统的核心组件(内核、Shell、文件系统等)和虚拟机的工作原理(通过hypervisor实现硬件虚拟化)。随后详细讲解环境搭建步骤:1)安装VMware虚拟机软件;2)下载CentOS7镜像并创建虚拟机;3)使用Xshell远程连接Linux系统;4)绑定网卡固定IP地址;5)创建虚拟机快照便于系统恢复。文章提供多张操作示意图,涵盖从软件安装到网络配置的完整流程,帮助用户快速构建Linux开发环境,特别强调了快照功能对系统保护和测试的
2025-05-30 21:43:28
1569
原创 Java研学-Restful API开发
本文介绍了两种主要的API类型及其特点:SDK类API和Web应用接口类API。SDK类API通过封装功能模块提供高效复用和深度定制,适用于专业场景;Web应用接口类API基于HTTP协议实现跨系统远程协作,具有无界兼容性和解耦开发优势。文章详细阐述了RESTful API的设计原则与实现方式,包括资源路径设计、HTTP方法约定和响应格式规范,并通过一个Spring Boot的入门Demo展示了员工管理的CRUD操作实现,涵盖列表查询、新增和更新功能。最后通过Postman演示了API的实际调用效果。
2025-05-28 11:11:22
469
原创 Java研学-MybatisPlus(四)
MyBatis Plus分页插件使用指南:介绍了如何配置分页插件,包括不同JDK版本的依赖引入方式、拦截器配置方法。详细演示了分页查询的实现步骤,包括创建分页对象、设置排序参数等。文章还讲解了通用分页实体类的设计,以及如何将查询结果封装到分页DTO中返回。最后通过一个用户分页查询的完整案例,展示了从Controller到Service的实现过程,并附有测试结果截图。
2025-05-28 11:10:35
193
原创 Java研学-MybatisPlus(三)
本文介绍了MyBatisPlus的三大扩展功能:1)代码生成器,通过插件自动生成实体类、Mapper等代码;2)DB静态工具,提供静态CRUD方法避免循环依赖,并展示了多表查询示例;3)逻辑删除功能,通过配置实现软删除而不实际删除数据。文中详细演示了代码生成器的安装配置、多表查询的实现步骤以及逻辑删除的配置方法,配有SQL代码示例和接口测试效果图,全面展示了MyBatisPlus的高级应用场景。
2025-05-27 15:58:00
509
原创 Java研学-MybatisPlus(二)
MyBatis-Plus实现CRUD与Restful接口开发 本文介绍了使用MyBatis-Plus框架实现CRUD操作和Restful风格接口的开发流程。主要内容包括: Service层实现:通过继承IService接口及其实现类快速完成CRUD功能 Restful接口开发:结合Swagger生成API文档 分层设计:采用DTO/PO/VO分层实体设计,使用BeanUtil进行对象属性拷贝 接口实现:包含增删改查等典型Restful接口示例,如批量查询、资源扣减等操作
2025-05-27 15:56:36
258
原创 Java研学-MybatisPlus(一)
利用Wrapper构建where条件后,自定义sql仍需处理的部分,把mp构建好的条件传递给mapper层,在mapper或mapper.xml中实现sql的组装,不在业务层编写sql遵守企业规范,在mapper方法参数中Param声明Wrapper变量名称必须是ew① 基于Wrapper构建where条件// 基于原有基础批量更新@Test// 1.更新数据// 2.构建查询条件// 3.自定义sql,方法参数中Param声明Wrapper变量名称必须是ew。
2025-04-18 14:11:29
703
原创 Java研学-Git(二)
Git 远程仓库是网络上用于存储和共享 Git 版本控制项目代码的服务器。它能实现代码共享与协作,方便团队成员推送和拉取代码;具备代码备份功能,即便本地数据丢失也可从远程恢复;还能配合本地仓库更好地管理项目版本。常见的远程仓库服务提供商包括 GitHub、GitLab和Gitee(国内代码托管平台,速度更快)。
2025-04-18 14:10:50
671
原创 Java研学-Git(一)
分支(Branch) 是Git中的一个指针,指向某个提交(commit)。它是一个独立的开发线,可在不影响主分支(如main或master)的情况下进行开发。可以随时创建、切换、合并或删除分支。分支允许开发者在同一个代码库中并行开发多个功能或修复多个问题,而不会相互干扰。
2025-04-16 09:33:59
1543
原创 Java研学-Activiti7工作流(五)
① 绘制bpmn,将任务处理人设置为变量,可让用户自行选择任务处理人② 可在对应的bpmn文件中查看是否设置成功③ AssigneeUELDemo – 测试类。
2025-04-16 09:33:26
393
原创 Java研学-Activiti7工作流(四)
若公司制度改变,更换人事经理。则旧的人事经理将未审核的信息都审核完毕才能换任,此时挂起流程定义,已经在运行的流程实例可以继续运行,但不能发起新的流程实例。若流程业务为start→A→B→C→end当C的业务逻辑需和第三方接口交互,但接口出问题了,剩下的流程都走到C执行业务逻辑就会报错,此时应挂起流程定义的同时挂起流程实例,等待接口可用后重新激活流程。业务流程发生改变,已经发起的流程实例继续按照旧的流程走,如果新发起的流程就按照新的业务流程走。这时就需要挂起流程定义,但是不挂起流程实例。
2025-04-15 09:44:19
301
原创 Java研学-Activiti7工作流(三)
① 绘图后为该流程赋予Id与Name,流程Id是流程定义的唯一标识符,用于在系统中唯一地识别一个流程。这有助于在数据库、日志、监控工具等中准确地引用和跟踪特定的流程实例。通过流程Id,可以在流程引擎中启动一个新的流程实例。例如,在Activiti或Camunda等BPM(业务流程管理)平台中,可以使用流程Id来触发流程的执行。流程Id还可以用于版本控制,特别是在流程定义发生变更时。通过为不同的版本分配不同的流程Id(或使用版本号与流程Id结合的方式),可以方便地管理和跟踪流程定义的变更历史。
2025-04-15 09:43:23
504
原创 Java研学-Activiti7工作流(一)
Activiti 7是一个开源的、轻量级的工作流和业务流程管理(BPM)平台,基于 Java 开发,支持 BPMN 2.0 标准,专为现代云原生架构设计。它提供了强大的流程引擎、丰富的 RESTful API 和事件驱动架构,能够无缝集成 Spring Boot 和微服务环境。Activiti 7 支持多租户、任务管理、流程监控和历史数据查询,适用于业务流程自动化、审批流程、任务调度等场景,帮助企业实现高效、灵活的流程管理。
2025-04-14 11:15:05
1310
原创 Java-常见面试题收集(二十)
CAP 定理是由加州⼤学伯克利分校 Eric Brewer 教授提出来的,他指出 WEB 服务⽆法同时满⾜⼀下 3 个属性:⼀致性(Consistency) : 客户端知道⼀系列的操作都会同时发⽣(⽣效)可⽤性(Availability) : 每个操作都必须以可预期的响应结束分区容错性(Partition tolerance) : 即使出现单个组件⽆法可⽤,操作依然可以完成在分布式系统中,⼀个 Web 应⽤⾄多只能同时⽀持上⾯的两个属性。因此,设计⼈员必须在⼀致性与可⽤性之间做出选择。
2024-09-27 16:28:55
661
原创 Java研学-POI导入导出
POI简介(Apache POI),是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。本文以Excel为例。
2024-09-26 14:20:39
538
原创 挑选合适的编程工具
选择合适的编程工具是提升开发者工作效率的关键一步。通过明确项目需求、调研试用、制定选型标准以及持续优化等策略,我们可以找到最适合团队和项目的工具组合。随着技术的不断进步和创新,我们相信未来将有更多高效、智能的编程工具涌现出来,为软件开发行业带来更多的变革和机遇。让我们保持学习和探索的热情,不断拥抱新技术和新工具,共同推动软件开发的进步与发展。
2024-09-24 13:38:46
640
原创 Java研学-数据字典(一)
在项目中会有很多的下拉框,这些下拉框的特点,就是以键值对的形式存在,其中 value(如 id:1,2… ),key(展示给用户的内容),数据库中可通过 value 寻找对应的 key,对于固定的内容可使用数据字典形式进行填写,防止出错。 实现方案: 1.直接硬编码写在html代码中(升级复杂,维护困难) 2.为每个下拉框都设计一个表,然后提供CRUD功能(表单中下拉框很多,内容相似,没必要每个都配,只特殊情况下使用) 3.使用数据字典的方式(维护项目中所有的下拉列表) sys_dic
2024-09-23 09:10:31
1766
原创 AI时代保持并提升自身的核心竞争力
另一方面,程序员也需要不断学习和适应新的工具和技术,以充分利用AI带来的便利。此外,随着AI在软件开发流程中的深入应用,程序员还需要具备与AI协同工作的能力,包括理解AI的工作原理、评估AI生成代码的质量以及调整AI的工作参数等。同时,随着AI技术的不断成熟和普及,软件开发行业的竞争也日益激烈,程序员需要不断提升自己的技能水平和综合素质以应对挑战。这包括理解AI的工作原理、评估AI生成代码的质量以及调整AI的工作参数等。程序员需要保持对新技术和新知识的敏感度,不断学习和掌握新的技能和方法。
2024-09-23 09:09:18
633
原创 有于AI想法
专业型 AI 模型由于专注于特定领域,可能在特定的环境下表现出较高的鲁棒性,但在面对其他领域的变化时可能适应性较差。这样,在需要扩展模型的功能时,可以通过添加新的模块来实现,而不会影响到其他模块的性能。同时,还可以考虑使用迁移学习等技术,将在一个领域学到的知识和技能迁移到其他领域,提高模型的可扩展性。在不同场景和应用中进行灵活切换时,可以根据具体的任务需求选择合适的模块组合,提高模型的适应性和推广性。在 AI 模型的开发、使用和推广过程中,必须遵循一定的道德规范和法律限制,以保护用户的隐私和权益。
2024-08-29 14:12:19
372
原创 国产游戏开发一路向好
技术创新与研发投入:游戏体验与玩法创新:全球化竞争与本地化:技术融合与创新:文化融合与国际化:市场扩张与消费升级:提升游戏品质与体验:推动玩法与模式创新:促进产业升级与转型:
2024-08-29 14:07:56
373
原创 Java研学-Shiro安全框架(六)
每当应用程序进行鉴权的时候,都会调用Realm中的doGetAuthorizationInfo来获取用户的角色信息/权限信息,这个方法是需要访问数据库的. 而用户的角色信息/权限信息基本上是不变的, 所以目前我们的程序是每次鉴权都需要访问数据库,而且返回的数据都是一样的.因此可以集成EhCache,将角色信息/权限信息都缓存起来,只有用户第一次鉴权的时候才会查询数据库,后续的鉴权都直接从缓存中获取.
2024-08-28 14:41:27
1107
原创 在数字化时代提升团队应急处理能力
在数字化时代,软件服务的稳定性是企业竞争力的核心。面对突发的技术故障,开发团队需要快速响应、高效解决问题,并从中吸取教训以防患未然。通过建立应急响应团队、制定详细的应急预案、使用先进的监控和报警系统、快速定位与修复以及透明沟通与用户安抚等策略,可以有效提升团队的应急处理能力。同时,从故障中吸取教训、优化系统设计与运维流程、加强团队培训与技能提升以及建立故障报告与激励机制等措施,有助于团队在日常工作中不断积累经验和提升能力。
2024-08-28 10:52:41
1171
原创 编程学习之路:跨越挫折,点亮希望之光
在编程学习的道路上,挫折和困惑是不可避免的。然而,正是这些挫折和困惑塑造了无数编程高手的坚韧和智慧。他们通过不断地学习、实践和思考,找到了突破的方法,成为了编程领域的佼佼者。他们的经验告诉我们,只要保持积极的心态、学会分解问题、善于利用资源、保持学习的热情并注意休息和放松,我们也能够克服挫折,走向成功。因此,让我们在编程学习的道路上相互鼓励、相互支持。当我们遇到挫折和困惑时,不要害怕寻求帮助和支持。相信在我们的共同努力下,我们一定能够点亮希望之光,走向更加美好的未来!
2024-08-27 08:40:25
853
原创 程序员成长的探索
在日常编码工作和自我提升之间找到平衡,是程序员们实现职业发展和个人成长的关键。通过合理的时间管理和学习策略,程序员们可以在高效工作的同时,持续推动自我提升。同时,通过积极参与团队内部的知识分享和交流活动、寻求与同事或同行的合作机会、参与开源项目或技术社区的建设和维护工作等方式,程序员们可以在日常编码工作和自我提升之间架起一座友谊、互利的桥梁。在未来的编程世界中,程序员们将面临更多的挑战和机遇。只有不断学习和适应变化,才能在激烈的竞争中脱颖而出。
2024-08-27 08:38:09
965
原创 Java研学-Shiro安全框架(五)
/ 自定义异常(向让用户看到的)// 异常也分为页面异常和 ajax 请求的异常。// ajax 请求try {} else{// 页面请求// 系统异常(不想让用户看到的)// 异常也分为页面异常和 ajax 请求的异常。// ajax 请求try {response.getWriter().write(new ObjectMapper().writeValueAsString(new JsonResult(false,"系统繁忙,请联系管理员")));
2024-08-26 13:24:15
1688
原创 记笔记方法
总之,高效的笔记记录和整理方法对于编程学习至关重要。通过选择合适的笔记工具、设计清晰的笔记结构以及制定有效的实践与复习策略,我们可以打造一个属于自己的编程学习“知识宝库”,为我们的编程之路提供有力的支持。电子文档(如 Word、Notepad++等)在线笔记工具(如印象笔记、OneNote 等)
2024-08-26 09:41:20
479
原创 Java-常见面试题收集(十九)
在MySQL查询优化中,最左匹配原则(Most Left Prefix Rule)是一个重要的概念,特别是在使用复合索引(即包含多个列的索引)时。它指的是在MySQL利用复合索引进行查询时,会按照索引中列的顺序从左到右进行匹配,直到遇到范围查询(如>、<、BETWEEN、LIKE 'pattern%'等)为止,之后的列将不会被索引继续利用。复合索引示例。
2024-07-11 16:06:44
862
原创 Java研学-Shiro安全框架(四)
Shiro提供认证授权功能,所以SpringBoot中不需再编写自定义注解,权限拦截,登录拦截,登录登出。Shiro 环境中有三个封装对象Subject ,SecurityManager和Realms,SpringBoot 集成 Shiro 时需要配置相对应的Bean(Subject 不用)
2024-07-11 09:19:17
1027
原创 开源大势所趋
综上所述,开源项目的发展趋势为技术创新和生态系统建设提供了强大动力,而参与开源项目则为开发者带来了技能提升、团队协作、文化传承、影响力扩大以及终身学习的宝贵机会。:开源社区作为技术创新的重要源泉,通过共享代码、讨论问题和提出改进建议,加速了技术的迭代和创新。在参与项目的过程中,开发者将学会如何进行有效的团队协作和沟通,并有机会通过承担领导角色或参与项目决策来培养自己的领导力。通过解决实际问题,开发者能够提升自己的编程能力和问题解决能力,并深入了解技术的实现细节和内部机制。
2024-07-10 14:41:16
524
原创 从“技术驱动”向“应用驱动”
李彦宏在2024世界人工智能大会上的发言深刻揭示了当前AI技术发展的核心趋势与方向,强调了从“技术驱动”向“应用驱动”转变的重要性,这一观点极具前瞻性和实践指导意义。
2024-07-10 09:07:50
538
原创 AI对开发者的帮助
综上所述,生成式人工智能(AIGC)在软件开发领域正在帮助开发者提高效率和质量,并引发了对开发者职业前景和技能需求变化的讨论。然而,AI并不会完全取代开发者,而是与开发者相辅相成,共同推动软件行业的进步和发展。在面对复杂的开发任务时,开发者的专业知识和经验仍然至关重要。AI工具提高了开发效率和质量,而开发者则通过其创造力和判断力来指导AI工具的使用,并不断优化和改进软件产品。随着AI工具的普及,开发者需要掌握与AI协同工作的技能,包括理解AI的工作原理、使用AI工具进行代码生成和错误检测等。
2024-07-09 09:32:22
371
原创 IT专业入门,高考假期预习指南
内容概述:计算机科学导论是IT专业的入门课程,主要介绍计算机科学的基本概念、发展历程、计算模型、算法与数据结构基础等。预习建议:阅读相关教材或在线课程,了解计算机的发展史、二进制与编码、计算机硬件组成、操作系统概述等内容。尝试理解算法的基本思想,如排序、搜索等。
2024-07-09 09:19:46
652
2
原创 我的创作纪念日(二)
我的Java创作之旅始于大学时期的一门课程。当时,我被Java语言的强大功能和广泛的应用领域所吸引。在学习过程中,我通过解决编程作业和项目挑战,逐渐积累了实战经验。为了更好地理解和应用Java,我开始撰写博客文章,记录自己的学习心得和解决方案。这一举动不仅加深了我对Java的理解,还让我意识到分享知识的重要性。
2024-07-08 10:27:41
671
1
原创 Java研学-Shiro安全框架(三)
如何实现项目中密码加密(这里我们采用的是 MD5 加密)的功能:1.添加用户的时候,对用户的密码进行加密;2. 登录时,按照相同的算法对表单提交的密码进行加密然后再和数据库中的加密过的数据进行匹配MD5 加密特点:属于不可逆的加密算法(只能从明文→密文,Shiro 中已经集成了MD5,直接使用即可),如果MD5 加密的数据一样,那么无论在什么时候加密的结果都是一样的,所以,相对来说还是不够安全,因此需要加盐。盐一般要求是固定长度的字符串,且每个用户的盐不同。
2024-07-08 10:26:58
780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人