- 博客(27)
- 收藏
- 关注
原创 Spring Cloud OpenFeign:声明式服务调用(代码示例)
本文介绍了SpringCloud中的OpenFeign组件及其使用流程。首先阐述了OpenFeign作为声明式HTTP客户端的作用,可通过接口调用远程服务。接着详细演示了创建OpenFeign项目的步骤,包括添加依赖、配置yml文件、创建实体类、Feign接口、Service层实现及Controller调用。项目通过Eureka实现服务发现,支持RESTful接口调用和参数传递。最后介绍了OpenFeign的通讯优化方案,通过配置gzip压缩提升传输效率。文章提供了完整的项目搭建指南和调用示例,展示了Ope
2025-10-10 08:43:49
1390
原创 Spring Cloud Netfilx -- Ribbon:负载均衡工具(代码示例)
本文介绍了Spring Cloud Ribbon负载均衡工具的实现原理和应用。Ribbon是基于HTTP/TCP的客户端负载均衡组件,通过从Eureka Server获取服务列表并应用负载均衡算法来选择服务实例。文章详细对比了集中式(如Nginx)和进程内(如Ribbon)两种负载均衡方案的特点,并提供了搭建服务集群的完整步骤,包括配置多个ApplicationService实例、创建ApplicationClient客户端工程等。重点分析了Ribbon的7种负载均衡策略及其适用场景,演示了如何通过配置类更
2025-10-06 15:12:26
950
原创 微服务,Spring Cloud 和 Eureka:服务发现工具
本文介绍了分布式架构中的微服务实现,重点讲解了SpringCloud框架和Eureka服务注册中心。主要内容包括:微服务架构的特点、SpringCloud版本管理、Eureka服务端与客户端的搭建与配置、Eureka集群原理与自我保护机制、SpringBoot应用的优雅关闭,以及分布式系统的CAP理论。文章通过具体示例展示了如何搭建单机版Eureka服务器和客户端,并详细说明了服务注册、续约、取消等核心交互过程,最后阐述了Eureka作为AP系统的特性及其在分布式环境中的应用价值。
2025-10-05 00:15:00
2837
原创 分布式文件存储系统FastDFS(入门)
本文介绍了基于FastDFS的分布式文件管理系统实现方案。主要内容包括:1)分布式文件系统概念及FastDFS特点;2)FastDFS架构原理(Tracker Server和Storage Server);3)基于Docker的FastDFS安装部署流程;4)使用Java客户端实现文件上传、下载、删除等操作的代码示例;5)结合SpringBoot的花卉管理系统具体案例,展示FastDFS在项目中的实际应用。文中详细说明了开发环境的搭建(Idea 2024、Linux+SSH、Docker)、工具类封装、测试
2025-10-04 13:12:09
2539
原创 安全框架 SpringSecurity 入门(超详细,IDEA2024)
本文详细介绍了SpringSecurity框架的集成与使用流程,包括: 1. 创建Maven项目并配置依赖 2. 实现认证与授权逻辑 3. 自定义登录页面和权限控制 4. 集成Thimeleaf实现变量权限显示 5. 实现记住我功能 6. 退出功能与CSRF防护 主要内容: 通过UserDetailsService实现数据库认证 使用BCryptPasswordEncoder进行密码加密 自定义登录页面和QIY配置 实现动态权限控制 集成Thymeleaf实现基于权限的页面元素显示 配置CSRF防
2025-10-03 00:00:44
1598
1
原创 在 IDEA 2024 创建 Vue 项目
本文介绍了Vue.js框架的应用。主要内容包括:1)前后端分离概念;2)MVVM模式;3)优缺点;4)环境搭建步骤;5)使用idea创建vue项目的完整流程。文章系统讲解了从理论到实践的Vue开发知识体系,为开发者提供了详细的技术指导。
2025-09-15 21:27:23
2288
2
原创 (用Maven)整合SpringBoot,SpringMVC,MyBatis
(用Maven)整合SpringBoot,SpringMVC,MyBatis 的 springbootsm
2025-09-15 20:41:29
1311
原创 2024版 IDEA 用 Maven 创建 java 项目(+Maven 安装和配置)
Maven 配置 和 2024版 IDEA 用 Maven 创建 java 项目
2025-09-14 23:47:00
3733
原创 MyBatis框架(编写代码部分2)
本文介绍了MyBatis中的动态SQL和查询缓存两大核心功能。动态SQL部分详细讲解了if+where实现条件查询、trim+if实现动态添加、set+if实现动态修改以及foreach处理IN条件等用法,并提供了具体示例代码。查询缓存部分则分别阐述了一级缓存(Session级别)和二级缓存(Mapper级别)的实现原理与配置方法,包括如何整合第三方缓存框架Ehcache,通过配置文件和测试代码展示了二级缓存的使用过程。整体内容涵盖了MyBatis中处理动态SQL语句和优化查询性能的关键技术。
2025-09-12 19:51:42
1070
原创 MyBatis框架(编写代码部分1)
本文介绍了MyBatis中Mapper.xml映射文件的基本使用方法。主要内容包括:1)创建实体类Dept和DeptMapper接口;2)编写Mapper.xml文件,详细说明select、insert、update、delete等SQL标签的用法及参数传递方式;3)测试类的编写与事务提交注意事项;4)对比#{}和${}占位符的区别。文章还提到了必要的MyBatisX和Lombok插件安装,以及二级缓存配置等高级特性。通过完整示例演示了从实体类定义到CRUD操作的全过程。
2025-09-11 23:49:12
1446
原创 MyBatis框架(概念,环境搭建,核心配置文件部分)
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一个基于Java的数据持久层(ORM)框架。在实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。半自动化:需要写一些sql语句才能完成指定功能。对象关系映射,是一种数据持久化技术。
2025-09-10 22:52:06
815
原创 从登录到权限:HRM(人力资源管理) 系统如何通过 localStorage 实现管理员专属删除功能(附部分代码)
本文介绍了人力资源管理系统中实现跨页面数据共享的方案。后端通过UserController.java处理登录验证,将登录状态、用户ID和角色信息(管理员标识)以JSON格式返回前端。前端登录成功后,使用localStorage存储这些数据(包括管理员状态isadmin)。在用户管理页面,通过读取localStorage中的isadmin值,动态控制删除按钮的显示权限,确保只有管理员才能执行删除操作。这种方案实现了前后端数据交互和页面间数据共享,完成了基于角色的权限控制功能。
2025-09-04 22:30:23
312
原创 解决java.sql.SQLException: Column ‘bookCode‘ not found.
但实体类 BookInfo 中包含 bookCode 等其他属性(如 publishDate、createBy 等)。修改 SQL 查询语句,确保查询的字段包含 BookInfo 类的所有属性(或至少包含所有非空属性)。情况:在登录页面点击登录跳转到图书信息页面后,不显示图书数据,但是有分页按钮。在BookInfoDaoImpl中,分页查询的查询语句里我只查询了部分字段。,当查询结果中缺少 bookCode 字段时,就会抛出「列不存在」的异常。将查询结果映射到 BookInfo 类的。
2025-08-31 22:22:28
252
原创 解决Uncaught TypeError: Cannot read properties of undefined (reading ‘length‘)
在我的代码中,很可能是 ph.listIndex 这个变量是 undefined,所以当执行 ph.listIndex.length 时就会报错。后端接口 binfo/getListByPage 返回的数据中,没有 listIndex 这个字段,导致 ph.listIndex 为 undefined,无法读取 length 属性。在异步请求还没完成,ph 还没有被正确赋值的时候,就执行了后续依赖 ph.listIndex 的代码。情况:在登录页面点击登录跳转到图书信息页面后,不显示图书数据。
2025-08-31 22:18:19
820
原创 解决错误信息:Uncaught TypeError: Cannot read properties of undefined (reading ‘toLowerCase‘)
在点击登录按钮后的 关于正确性校验方法ckuname()和ckpwd() 的if语句删掉。用户名和密码无法传进去-->UserController里的finduser方法也没有调用。把 正确性校验方法ckuname() 和失去焦点事件合并,写成匿名方法,情况:输入正确的账号密码,没有跳转到下一页面。UserController里的这两个输出语句也不会输出↓。第二张图中,失去焦点那里第一行用分号;在下一行写的this无法指向原本想要指向的对象,上面图片中的alert(密码正确)不会跳↑。
2025-08-31 22:07:14
256
原创 IDEA连接mySQL数据库,实现增、删、改、查操作
摘要:本文介绍了JDBC操作数据库的标准7个步骤:加载驱动、获取连接、编写SQL、创建执行对象、执行SQL、处理结果和关闭资源。以查询"person"表中性别为"男"的记录为例,详细演示了PreparedStatement参数化查询的实现过程。文章还提供了通用的数据库工具类DBHelper,包含获取连接、增删改查等方法,其中查询方法通过反射机制将结果集映射到对象,实现了ORM功能。这些方法封装了JDBC核心操作,简化了数据库编程。
2025-08-31 21:55:14
370
原创 java基础:反射(学习笔记)
Java反射机制是在运行时动态获取类信息和操作对象的能力,允许程序访问类结构、动态创建对象、调用方法和修改字段值。其特点包括运行时信息访问、动态对象创建和方法调用等。反射常用于数据库驱动加载(如JDBC)和框架配置(如Spring IOC)。优点是增强代码灵活性,缺点是可能引发安全问题。获取Class对象的四种方式:类名.class、Class.forName()、对象实例.getClass()和类加载器.loadClass()。反射为开发提供便利,但需注意性能和安全问题。
2025-08-20 21:34:06
739
原创 java基础:多线程(学习笔记)
本文介绍了Java多线程编程的核心概念:程序是静态代码,进程是程序的执行实例,线程是进程内的执行路径。重点讲解了线程的生命周期(新生、就绪、运行、阻塞、死亡状态)、四种创建线程的方法(继承Thread类、实现Runnable/Callable接口、使用线程池),以及线程安全问题的三种解决方案(同步方法、同步代码块、Lock锁)。通过售票案例演示了多线程并发时可能出现的数据安全问题及解决方法,为提升程序执行效率提供了关键技术方案。
2025-08-18 21:57:24
728
原创 java基础:IO流(学习笔记)
摘要:本文介绍了Java中File类和IO流的基本操作。File类用于封装文件/目录信息,提供创建、删除、查询等操作,但不能获取文件内容。IO流分为输入/输出流、字节/字符流、处理/节点流三类,包括FileReader/Writer、BufferedReader/Writer等常用类,并演示了文件复制、图片处理等示例。重点讲解了字符流与字节流的区别、缓冲流的使用(缓冲区大小1024*8)以及转换流、数据流、对象流等高级操作,强调每次使用后需手动关闭流资源,且后开的流要先关闭。
2025-08-17 21:23:56
448
原创 java基础:集合(学习笔记)
本文摘要: Java集合框架是用于存储和管理对象的容器,相比数组具有动态扩容、类型灵活等优势。集合分为Collection和Map两大体系:Collection包含List(有序可重复)和Set(无序唯一)子接口,常见实现类有ArrayList、LinkedList、HashSet等;Map存储键值对,实现类包括HashMap和TreeMap。重点介绍了集合的增删改查操作、迭代器遍历方式,以及HashSet的去重原理(hashCode+equals)、TreeSet的排序机制(比较器接口)。同时对比了Arr
2025-08-07 23:16:58
914
原创 java基础:常用类的常用方法(学习笔记)
本文介绍了Java中包装类、数学工具类、时间日期类以及字符串类的核心知识。主要包括:1) 包装类的作用与常用方法(如Integer的构造、比较和转换方法);2) 大数类BigInteger和BigDecimal的运算;3) 数学工具类Math的随机数生成;4) 时间日期处理的三代演变(Date、Calendar到LocalDate);5) 字符串类String及其可变版本StringBuffer/StringBuilder的常用操作方法。文章重点讲解了各类的核心功能和使用场景,并对比了不同实现方式的优缺点。
2025-08-06 22:38:55
975
原创 java基础:继承+多态(学习笔记)
面向对象编程中,类是具有相同属性和行为的对象集合,包含属性、方法等组成部分。继承通过提取共性代码到父类实现代码复用,子类通过extends继承父类资源并支持方法重写,具有单根性和传递性特点。多态通过"父类引用指向子类对象"实现动态绑定,需满足继承、重写和向上转型三个条件,支持强制向下转型。简单工厂模式通过父类作为返回值类型,根据输入参数动态创建不同子类对象,实现创建与使用的分离。这些特性共同构成面向对象的核心机制,提高了代码的复用性和扩展性。
2025-07-31 00:20:33
1068
原创 java基础:封装(学习笔记)
本文介绍了面向对象编程中解决参数不确定问题的方法——封装。通过创建一个Cat类的案例,详细说明了封装的具体实现步骤:1) 定义类及属性;2) 使用构造方法简化对象创建;3) 通过private修饰符实现封装,使用setter/getter方法安全访问属性;4) 添加类方法实现具体功能。文章重点阐述了构造方法的特点、封装的意义以及如何通过封装保证数据安全,同时展示了如何在测试类中实例化对象并调用方法。最后通过猫的玩耍和吃饭方法示例,演示了完整的面向对象编程实现过程。
2025-07-29 23:22:54
807
原创 java基础:数组——迷你DVD管理器的实现(学习笔记)
本文介绍了数组的基本概念及其在Java中的应用。数组是存储相同类型数据的集合,支持静态初始化、动态初始化和默认初始化三种方式。文章重点演示了如何利用数组实现迷你DVD管理系统,包括DVD信息的存储、初始化、菜单操作等功能。系统实现了添加、查看、删除DVD,以及借出和归还DVD等核心功能,其中借还操作涉及日期处理和租金计算。通过将各功能模块封装为独立方法,并配合数组操作,展示了数组在实际项目中的典型应用场景。代码示例详细展示了数组初始化和各种操作方法的具体实现。
2025-07-25 22:18:59
869
1
原创 java基础:方法(学习笔记)
摘要:本文介绍了方法的概念及其在面向对象编程中的应用。方法是一段完成特定功能的代码,其声明格式包括修饰符、返回值类型、方法名和参数列表。文章以万年历为例说明方法的使用优势,包括判断闰年的方法和计算月份天数的方法。通过封装重复代码为方法,提高了代码重用性和维护性。最后介绍了方法重载的概念,即同一类中方法名相同但参数列表不同的多个方法,便于统一功能操作。方法重载为实现多态性提供了基础。
2025-07-24 23:26:59
323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅