- 博客(31)
- 收藏
- 关注
原创 MyBatis-Plus 极简实战教程
MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,不修改 MyBatis 原有功能,只做增强,简化 CRUD、分页、条件查询等操作,大幅提升开发效率。五、条件构造器(QueryWrapper/LambdaQueryWrapper)MyBatis-Plus 极简实战教程(Markdown 版)七、常用操作示例(Controller 层)继承 ServiceImpl<M, T>三、Mapper 层(零 XML)四、Service 层(简化业务)二、核心注解(必记)六、分页查询(必用)
2026-03-24 23:43:46
56
原创 Kubernetes (K8s) 入门到实战教程
一、K8s 简介Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩缩容和管理容器化应用。二、环境准备bash。
2026-03-20 23:04:21
351
原创 Symfony 使用完整教程
我给你一套最简单、能直接跑起来的 Symfony 安装 + 使用完整教程,小白也能一步一步跟着做,适用于 Windows / Mac / Linux。一、环境要求(先确认)二、安装 Symfony(2 种方式,选一种)方式1:Composer 安装(最通用)bash进入项目:bash启动服务:bash如果没有 symfony 命令,用 PHP 自带启动:bash访问:三、基础使用(最常用)bashphp‘msg’ => ‘Symfony 接口成功’,
2026-03-18 23:14:36
305
原创 Spring Cloud Alibaba 实战
Spring Cloud Alibaba 实战:基于 Spring Boot 3.2.6 和 Spring Cloud Alibaba 2023.0.1.0 的微服务架构阿里巴巴生态下Spring Cloud微服务架构实战(基于Spring Boot)本文基于Spring Boot 3.2.x + Spring Cloud Alibaba 20搭建微服务项目,涵盖阿里生态核心技术选型、架构设计、项目搭建、核心代码实现及使用说明,所有案例可直接落地,适配Markdown文档格式,便于保存和查阅。
2026-03-15 23:56:22
394
原创 Dify 部署与使用完整教程
Dify 是一款开源的大语言模型(LLM)应用开发平台,核心优势是「低门槛、高灵活」,无需专业算法团队,无需 GPU 服务器,即可快速构建企业级 AI 应用,支持可视化工作流、内置 RAG 知识库、多模型适配(通义千问、OpenAI、本地 Ollama 等)。核心功能:可视化开发:拖拽式构建 AI 工作流,无需复杂编程多模型支持:兼容云端模型(通义千问、GPT)和本地模型(Ollama 部署的千问、Llama 等)RAG 能力:轻松上传文档,构建基于知识库的问答系统。
2026-03-14 20:21:19
483
原创 ThinkPHP 结合 Swoole 完整使用教程
✅HTTP 服务:高性能替代 PHP-FPM✅WebSocket:实时聊天、消息推送✅Task 异步任务:邮件、日志、耗时操作✅高并发、低延迟、常驻内存。
2026-03-14 20:14:37
186
原创 Spring AI 基础使用与介绍
Spring AI 是 Spring 官方推出的 AI 应用开发框架,用于简化 Java 后端对接大模型 API 的开发流程。Spring AI、大模型 API、RAG、知识库、向量数据库、Prompt 工程、AI 应用开发。Spring AI = Java 后端接入 AI 的最快方式。统一对接各种大模型(豆包、通义千问、文心一言、GPT 等)支持 RAG 知识库、向量数据库、提示词工程、对话记忆。四、Spring AI 最简单使用(一行调用 AI)快速开发 AI 助手、AI 客服、AI 数据分析。
2026-03-13 23:25:08
235
原创 Spring Boot 3.x 与 MyBatis-Plus 兼容问题笔记
Spring Boot 3.2+ 版本使用 MyBatis-Plus 时,出现等类型不匹配/依赖冲突报错,核心原因是。
2026-03-13 10:06:47
161
原创 Windows 安装 Maven 3.9.6(最简单可靠)
你只需要按下面 4 步:装OpenJDK 17装配环境变量 M2_HOME + Path修改 settings.xml → 加阿里云镜像。
2026-03-12 21:56:53
340
原创 Layui 的常见使用方法。
Layui 是一款经典的前端 UI 框架,以简洁易用、组件丰富著称,适合快速开发后台管理系统等场景。Layui 适合快速搭建后台界面,核心是掌握 layui.use() 的模块化调用和各组件的配置项。Layui 采用模块化机制,通过 layui.use() 加载所需组件,避免全局污染。├── css/ # 样式文件(核心 layui.css)├── js/ # 脚本文件(核心 layui.js)content: ‘/user/edit’ // 页面URL。
2026-03-11 09:00:32
212
原创 10个PHP常用功能函数
2. 生成随机字符串(用于验证码、Token等)4. 格式化文件大小(B→KB→MB→GB)3. 数组按指定键排序(支持升序/降序)
2026-03-11 08:51:58
12
原创 php常用算法
思想:选择基准值,将数组分为小于和大于基准值的两部分,递归排序。思想:针对有序数组,每次取中间值对比,缩小查找范围。思想:重复比较相邻元素,将大值“冒泡”到尾部。思想:遍历数组逐一对比,适合无序或小规模数据。(1)二分查找(Binary Search)(2)线性查找(Linear Search)方法:利用哈希表(关联数组)记录已出现的值。思想:用缓存存储已计算的结果,避免重复计算。(2)冒泡排序(Bubble Sort)(1)快速排序(Quick Sort)(2)判断回文串(正读反读一致)
2026-02-26 19:06:05
348
原创 PHP设计模式23种
echo “加奶”;场景:旧系统接口适配新系统(如将 pay() 适配为 processPayment() )。场景:流程固定但步骤可变(如做菜:备料→烹饪→装盘,烹饪步骤子类实现)。核心:在不修改元素类的前提下,为元素添加新操作(分离数据结构与操作)。场景:多维度变化(如形状+颜色:圆形/方形 与 红/蓝 独立扩展)。场景:封装多个子系统(如电商下单:调用库存、支付、物流子系统)。场景:对复杂对象结构(如树形)进行多种不同操作(统计、打印)。场景:创建多部件对象(如电脑:CPU、内存、硬盘分步组装)。
2026-02-17 15:36:13
591
原创 进程、线程、携程
PHP 原生不支持多线程,但可以通过 pthreads 扩展(仅 CLI 模式)。PHP 通过 Swoole 或 Fiber(PHP 8.1+)支持协程。独立内存空间,进程间通信(IPC)需要特殊机制(如管道、共享内存)。共享进程的内存,线程间通信更高效,但需要同步机制(如锁)。用户态轻量级线程,由程序控制切换,不依赖操作系统调度。适用于高并发 I/O 操作(如网络请求、数据库查询)。创建和切换比进程轻量,但仍由操作系统调度。创建和切换开销大,由操作系统调度。
2026-02-11 22:04:49
233
原创 SpringBoot学习笔记
SpringBoot一、什么是微服务微服务文章 martin fowler <<microservice>>二、启动流程原理SPRINGBOOT启动流程及其原理谈谈对springboot的理解自动装配过程run()方法三、配置文件读取yaml、properties注解:@ConfigurationProperties扫描yaml配置文件,并找到配置文件person开头的对象,将属性与配置文件的key一一对应,进行赋值。@PropertySource是扫描
2023-08-18 11:24:31
303
原创 MyBatis学习笔记
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。1) M
2023-08-07 16:34:52
453
原创 1.node+express实用案列
1.注册服务器const express=require('express')const path=require('path')const db=require('./db/connect')const app=express()app.listen(3000,()=>{ console.log('server running')})2.路由分发app.use('/food',(req,res,next)=>{ //设置登录验证 console.lo
2022-04-28 09:36:13
915
原创 1.小程序工作常用案列
1.创建云函数// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数exports.main = async (event, context) => { const db=cloud.database() //接受参数 const _ = db.command //查询语句 const res=await db.collection('admin') event.res.for
2022-04-27 10:15:42
232
原创 1.vue工作实用案列大全
1.配置axios发起登录请求import axios from 'axios'//配置请求axios.defaults.baseURL='http://127.0.0.1:8888/api/private/v1/'Vue.prototype.$http=axios2.配置Message全局弹框import {Message} from 'element-ui'Vue.prototype.$message=Message3.挂载路由导航守卫router.beforeEach((to,
2022-04-24 15:30:38
1955
原创 2.堆栈原理
//1.栈数据//基本数据类型(按值访问):Undefined 、 Null 、 Boolean 、 Number 和 String//2.堆数据//引用数据类型(按引用访问):object、Array、function
2022-04-21 09:39:11
109
原创 1.深拷贝和浅拷贝的 深刻理解
浅拷贝 对于简单的数据类型,浅拷贝,并不会改变了之前的值,对于复杂的数据类型,会改变之前的值(数组,对象)浅拷贝,简单类型的是值拷贝,复杂数据类型是值拷贝和地址拷贝,所以说对于复杂的数据类型,会改变之前的值(数组,对象)//简单var a = 1;var b = a; //浅拷贝b = 2; //改变b的值,并不会影响到a,因为浅拷贝对基本类型而言就是值拷贝console.log(a)//复杂var arr = ["One","Two","Three"];var arrto .
2022-04-20 11:25:39
350
原创 5.selenium元素无法点击错误
from selenium. web driver. common. keys import Keys from selenium. webdriver import Chrome web=Chrome()url='xpath'web. find_element_by_xpath(url). send_keys(Keys_ENTER)
2020-05-22 23:28:44
234
原创 4.csv
import csv with open('fujun.csv',mode='w') as file: name={'名字' ,'密码'} writer= csv.DictWriter(file,fiedlnames=name) writer. writeheader() data={'名字':'fujun','密码':'838383'} writer.writerow(data) ...
2020-05-17 12:58:55
159
原创 2.super()
super(MyThread, self).init()#首先找到MyThread的父类,然后把类MyThread的对象self转换为类A的对象,然后“被转换”的类A对象调用自己的__init__函数.调用父类的初始化方法
2020-05-14 21:31:56
147
原创 1.python判断类型
python判断类class demo() : passclass demo2() : pass type() #判断类型isintance(demo,demo2) #判断是否同一个类id() #对象id
2020-05-13 23:51:52
156
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅