[福游宝——AI智能旅游信息查询平台]全栈AI项目-阶段一:Vite前端开荒
简言
本项目旨在构建一个以AI智能体
为核心的福建省旅游信息查询系统,聚焦景点推荐、路线规划、交通天气查询等功能,为游客提供智能化、便捷化的旅游信息服务。项目采用前后端分离架构,前端基于Vite + TypeScript + Vue3技术栈,搭配轻量级移动端UI库Vant实现高效开发与响应式布局;后端采用SpringBoot框架构建RESTful API,通过MySQL进行数据存储与管理,将集成DeepSeekAI
实现自然语言处理与智能推荐能力。
项目地址
- gitCode平台:https://gitcode.com/Var_ya/varWisdomModelBody
脚手架明细表
前端:
技术 | 版本 | 官网地址 |
---|---|---|
Vite | ^6.2.0 | https://cn.vitejs.dev/ |
node.js | ^22.14.0 | https://nodejs.org/zh-cn |
npm | ^10.9.2 | https://www.npmjs.com/ |
vue-router | ^4.5.0 | https://router.vuejs.org/zh/ |
Vue3 | ^3.5.13 | https://vuejs.org/ |
Vant | ^4.9.18 | https://vant-ui.github.io/vant/#/zh-CN |
postcss | ^8.5.3 | https://github.com/cuth/postcss-pxtorem |
postcss-pxtorem | ^6.1.0 | |
待补充… |
当前进度预览
- 已完成首页布局(gitcode平台代码进度,博客将会在后续更新~)
一、gitcode平台创建项目
提示:创建项目的详细步骤请看:《2025 Windows安装 Git 教程|GitCode平台代码托管实战演示》
本项目是公开的,项目地址:https://gitcode.com/Var_ya/varWisdomModelBody
二、搭建Vite项目
Vite官网:https://cn.vitejs.dev/
前提条件
- 在搭建Vite项目前,需要用户有node环境。
- windows命令行查询node命令:node -v
- 如果用户没有node环境,请阅读文章:Node.js v22.14.0 多平台安装指南:Windows、Linux 和 macOS 详细教程
npm安装
- 执行命令
npm create vite@latest
- 建立项目名
我对web前端项目命名为: varWisdomModelBodyWeb
注意:可以不命名,默认项目名为:vite-project
- 建立包名
本项目包名为:cn.varin
- 模板选择
Vue
- 前端语言选择
TypeScript
由此:Vite项目已经建立完成了
三、启动Vite项目
- 安装醒目依赖
npm install
- 启动项目
npm run dev
默认页面:App.vue
四、页面背景初始化
- 禁用全局样式表
- 到main.ts页面中,注释掉对应部分:style.css
- 首页初始化
<!--修改页面:index.html -->
<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><link rel="icon" type="image/svg+xml" href="/vite.svg" /><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0,viewport-fit=cover" /><title>Var Wisdom</title></head><body><div id="app"></div><script type="module" src="/src/main.ts"></script></body></html>
<style>*{margin:0;padding:0;}p{font-size: 16px;display: block;padding: 0;margin: 0;}img{display: block;border:none;}body{/* 背景渐变色设置,从右上角到左下角 */background: linear-gradient(to bottom left,#a0c9ff,#f2f5fa);background-repeat: no-repeat;background-size: 100% ,100%;background-attachment: fixed; }</style>
- 效果预览
五、vue-router引入使用
官网地址:https://router.vuejs.org/zh/
使用教程可参考:https://router.vuejs.org/zh/guide/
引入依赖
npm install vue-router@4
使用路由
- 创建router实例
步骤一:在src目录下建立router文件夹后
步骤二:在router文件夹中创建index.ts文件
- 配置路由表
注意:src为根路径
页面名 | 路由路径 | 页面路径 | 备注 |
---|---|---|---|
home | / | src\page\home\index.vue | 聊天页面 |
goodsDetails | /goodsDetails | src\page\goodsDetails\index.vue | 商品详情页 |
complainPage | /complainPage | src\page\complainPage\index.vue | 投诉页面 |
- 编写路由代码
import {createWebHashHistory, createRouter } from 'vue-router'const routes = [// 聊天界面{path: '/',name: "home",component: () => import("../page/home/index.vue")},// 商品详情界面{path: '/goodsDetails',name: "goodsDetails",component: () => import("../page/goodsDetails/index.vue")},// 投诉界面{path: '/complainPage',name: "complainPage",component: () => import("../page/complainPage/index.vue")},]// 创建路由实例const router = createRouter({history: createWebHashHistory(),routes,
})
// 导出
export default router
- main.ts进入router
import { createApp } from 'vue'// import './style.css'
import App from './App.vue'// 引入路由实例
import router from"./router/index"
const app = createApp(App)
// 注入路由
app.use(router)app.mount('#app')
- App.vue添加动态加载组件标签
<template><!-- 动态加载组件 -->
<RouterView></RouterView>
</template><script setup lang="ts">
</script>
<style scoped></style>
结语:以上已经完成路由配置
六、自定义路由设置别名
- 配置alias路径别名
- 在根目录的vite.config.ts下配置alias路径别名
- 完整代码:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'import {resolve} from "path" // 用来处理文件路径
// https://vite.dev/config/
export default defineConfig({plugins: [vue()],// 添加别名resolve:{alias:{"@":resolve(__dirname,"./src")// 引入文件路径时使用@/默认从src开始}}
})
- 添加compilerOptions(中文:编译器选项)的配置
- 在**tsconfig.app.json**的compilerOptions下配置paths,目的是告诉编译器,我用一个符号来代替文件地址了~
{"extends": "@vue/tsconfig/tsconfig.dom.json","compilerOptions": {"tsBuildInfoFile": "@/node_modules/.tmp/tsconfig.app.tsbuildinfo",/* Linting */"strict": true,"noUnusedLocals": true,"noUnusedParameters": true,"noFallthroughCasesInSwitch": true,"noUncheckedSideEffectImports": true,// 设置,告诉TS找文件从哪里找"baseUrl": "./",// 定义路径映射// 当用户用键盘输入@时,让编辑器知道从src下开始找"paths": {"@/*":["src/*"]}},"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],}
- 修改router目录下index.ts文件路径编写格式
import { createWebHashHistory, createRouter } from 'vue-router'const routes = [// 聊天界面{path: '/',name: "home",component: () => import("@/page/home/index.vue")},// 商品详情界面{path: '/goodsDetails',name: "goodsDetails",component: () => import("@/page/goodsDetails/index.vue"),},// 投诉界面{path: '/complainPage',name: "complainPage",component: () => import("@/page/complainPage/index.vue")},]// 创建路由实例const router = createRouter({history: createWebHashHistory(),routes,
})
// 导出
export default router
- 注意点:
如果在设置完成后,遇到了设置完成后,路径别名爆红的情况,请参考文章:
https://blog.csdn.net/weixin_45597682/article/details/142663210?spm=1001.2014.3001.5506
七、Vant移动端组件引入
官网地址:https://vant-ui.github.io/vant/#/zh-CN
引入依赖
# Vue 3 项目,安装最新版 Vant
npm i vant# Vue 2 项目,安装 Vant 2
npm i vant@latest-v2
引入单组件实例
- man.ts注册组件
import { createApp } from 'vue'// import './style.css'
import App from './App.vue'// 引入路由实例
import router from"./router/index"
const app = createApp(App)
// 注入路由
app.use(router)// 1. 引入你需要的组件
import { Button } from 'vant';
// 2. 引入组件样式
import 'vant/lib/index.css';// 3. 注册你需要的组件
app.use(Button);app.mount('#app')
- 使用组件
- 任意在一个vue页面中添加
<template><!-- 按钮--><van-button type="primary">主要按钮</van-button>
<van-button type="success">成功按钮</van-button>
<van-button type="default">默认按钮</van-button>
<van-button type="danger">危险按钮</van-button>
<van-button type="warning">警告按钮</van-button>
</template>
<script lang="ts"></script><style lang="less" scoped></style>
八、像素转化自适应设备
postcss插件引入
- 安装插件
npm install postcss postcss-pxtorem --save-dev
- 配置属性
- vite.config.ts文件配置
import { defineConfig } from 'vite'
import postcssPxtorem from "postcss-pxtorem"
import vue from '@vitejs/plugin-vue'import {resolve} from "path" // 用来处理文件路径
// https://vite.dev/config/
export default defineConfig({plugins: [vue()],// 添加别名resolve:{alias:{"@":resolve(__dirname,"./src")// 引入文件路径时使用@/默认从src开始}},css:{postcss:{plugins:[postcssPxtorem({rootValue: 39, // 以iphone12 为例 unitPrecision: 5,// 转rem精确到小数点位数propList: ['*'] // 需要转换的属性})]}}})
amfe-flexible插件引入
- 安装
npm i -S amfe-flexible
- main.ts 引入依赖
import { createApp } from 'vue'// import './style.css'
import App from './App.vue'
// 动态改变字体大小
import "amfe-flexible"// 引入路由实例
import router from"./router/index"
const app = createApp(App)
// 注入路由
app.use(router)// 1. 引入你需要的组件
import { Button } from 'vant';
// 2. 引入组件样式
import 'vant/lib/index.css';// 3. 注册你需要的组件
app.use(Button);app.mount('#app')
效果
相关文章:
[福游宝——AI智能旅游信息查询平台]全栈AI项目-阶段一:Vite前端开荒
简言 本项目旨在构建一个以AI智能体为核心的福建省旅游信息查询系统,聚焦景点推荐、路线规划、交通天气查询等功能,为游客提供智能化、便捷化的旅游信息服务。项目采用前后端分离架构,前端基于Vite TypeScript Vue3技术栈,搭配…...
SpringCloud-OpenFeign
前言 1.存在问题 远程调用可以像Autowired一样吗 服务之间的通信⽅式,通常有两种:RPC和HTTP. 在SpringCloud中,默认是使⽤HTTP来进⾏微服务的通信,最常⽤的实现形式有两种: RestTemplate OpenFeign RPC(RemoteProcedureCall)远程过程调⽤&…...
程序化广告行业(79/89):技术革新与行业发展脉络梳理
程序化广告行业(79/89):技术革新与行业发展脉络梳理 大家好!一直以来,我都热衷于在技术领域不断探索,也深知知识共享对于进步的重要性。写这篇博客,就是希望能和大家一起深入研究程序化广告行业…...
[算法题:快排(一)]颜色分类
1->题目链接 算法题:颜色分类 2->题目解析 数字0表示红色,数字1表示白色,数字2表示蓝色. 这到题说白了就是让我们进行排序,数组中只会有 0 1 2 三种数字 3->算法原理 类⽐数组分两块的算法思想,这⾥是将数组分成三块,那么我们可以再添加⼀个…...
论文精度:YOLOMG:基于视觉的无人机间检测算法——外观与像素级运动融合详解
论文地址:https://arxiv.org/pdf/2503.07115 1. 论文概述 论文标题:YOLOMG: Vision-based Drone-to-Drone Detection with Appearance and Pixel-Level Motion Fusion 作者:Hanqing Guo, Xiuxiu Lin, Shiyu Zhao 发表:未明确会议/期刊(推测为预印本或待发表) 核心贡献:…...
Redis:线程模型
单线程模型 Redis 自诞生以来,一直以高性能著称。很多人好奇,Redis 为什么早期采用单线程模型,它真的比多线程还快吗? 其实,Redis 的“快”并不在于并发线程,而在于其整体架构设计极致简单高效,…...
C++进阶——C++11_{ }初始化_lambda_包装器
目录 1、{ }初始化 1.1 C98的{ } 1.2 C11的{ } 1.3 C11中的std::initializer_list 总结一下: 2、lambda 2.1 lambda的语法 2.2 捕捉列表 2.3 lambda的应用 2.4 lambda的原理 3、包装器 3.1 function 3.2 bind 1、{ }初始化 1.1 C98的{ } C98中一般数组…...
十大PDF解析工具在不同文档类别中的比较研究
PDF解析对于包括文档分类、信息提取和检索在内的多种自然语言处理任务至关重要,尤其是RAG的背景下。尽管存在各种PDF解析工具,但它们在不同文档类型中的有效性仍缺乏充分研究,尤其是超出学术文档范畴。通过使用DocLayNet数据集,比…...
【LeetCode Solutions】LeetCode 160 ~ 165 题解
CONTENTS LeetCode 160. 相交链表(简单)LeetCode 162. 寻找峰值(中等)LeetCode 164. 最大间距(中等)LeetCode 165. 比较版本号(中等) LeetCode 160. 相交链表(简单&#…...
关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例
以下是关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例: 关于 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案! https://sca.aliyun.com/?spm7145af80…...
3.1多状态专题:LeetCode面试题17.16 按摩师
动态规划解决按摩师预约问题——以LeetCode面试题17.16为例 1.题目链接 LeetCode面试题17.16 按摩师 2.题目描述 一个有名的按摩师收到一系列的预约请求,每个预约都可以选择接受或不接受。但相邻的预约不能同时接受。给定一个包含各预约时长的数组 nums…...
Netty基础入门(一)
1.EventLoopGroup 1、概念 EventLoopGroup 是一组 EventLoop,Channel 一般会调用 EventLoopGroup 的 register 方法来绑定其中一个 EventLoop,后续这个 Channel 上的 io 事件都由此 EventLoop 来处理(保证了 io 事件处理时的线程安全&#x…...
Transformer模型的自注意机制原理、作用、优缺点,通俗易懂
Transformer模型中的自注意力机制(Self - attention Mechanism)可以通俗地理解为一种让模型自动关注文本中不同部分之间关系的方法。 工作原理 假设你有一句话“我正在吃苹果”,自注意力机制会让模型去分析每个词和其他词之间的关联程度。比…...
设计模式-结构型模式-代理模式
概述 代理模式: Proxy Pattern : 是一种结构型设计模式. 它允许你提供一个替代对象来代表真实对象,以此控制对真实对象的访问。 通过代理对象,可以在不改变目标对象的前提下,扩展其功能或控制对其的访问。 简单理解 : 代理模式就是…...
大模型开发:源码分析 Qwen 2.5-VL 视频抽帧模块(附加FFmpeg 性能对比测试)
目录 qwen 视频理解能力 messages 构建 demo qwen 抽帧代码分析 验证两个实际 case 官网介绍图 性能对比:ffmpeg 抽帧、decord 库抽帧 介绍 联系 对比 测试结果 测试明细 ffmpeg 100 qps 测试(CPU) decord 100 qps 测试&#x…...
单调栈 —— 1.基本概念与核心算法
1. 基本概念 1.1 知识预备 在理解单调栈之前,我们需要先掌握两个基础概念:栈(Stack) 和 单调性(Monotonicity)。 什么是栈(Stack) 栈是一种**后进先出(LIFO, Last-In…...
Ollama部署大模型 (完整版本、网速慢处理、聊天界面)
切记!切记!切记! Ollama软件下载的模型一般都是别人微调好的,且模型文件与HuggingFace等平台不一样,使用为主,没有官方API可以对模型微调(教程都是cpp这类的,没必要这么麻烦去操作&a…...
CMake中add_custom_command用法详解
add_custom_command 是 CMake 中用于在构建过程中添加自定义命令的工具。它通常用于生成文件或在构建特定目标前后执行操作。其行为和执行时机取决于具体使用场景。 主要用法 add_custom_command 有两种典型用法: 1. 生成文件(Generating Files&#x…...
基于疾风大模型的新能源储能优化系统:方法、实现与案例分析
一、引言 随着可再生能源渗透率不断提高,储能系统在电力系统中的重要性日益凸显。传统储能控制方法主要基于规则策略和简单优化算法,难以应对高比例新能源场景下的复杂决策需求。本文将详细介绍如何利用疾风大模型(Gale Model)构建智能化的新能源储能优化系统,包含核心方…...
Large Language Model(LLM)的训练和微调
之前一个偏工程向的论文中了,但是当时对工程理论其实不算很了解,就来了解一下 工程流程 横轴叫智能追寻 竖轴上下文优化 Prompt不行的情况下加shot(提示),如果每次都要加提示,就可以试试知识库增强检索来给提示。 如果希望增强…...
Windows 系统中安装 Git 并配置 GitHub 账户
由于电脑重装系统,重新配置了git. 以下是在 Windows 系统中安装 Git 并配置 GitHub 账户的详细步骤: 1. 安装 Git 访问 Git 官网下载页面下载 Windows 版本的 Git 安装程序运行安装程序,使用默认选项即可 2. 配置 Git 用户信息 打开命令…...
KWDB创作者计划—KWDB场景化创新实践:多模态数据融合与边缘智能的突破性应用
引言:AIoT时代的数据库范式重构 在工业物联网设备数量突破千亿、边缘计算节点覆盖率达75%的2025年,传统数据库面临多模态数据处理效率低下、边缘端算力利用率不足、跨域数据协同困难等核心挑战。KWDB(KaiwuDB Community Edition)通…...
波束形成(BF)从算法仿真到工程源码实现-第四节-最小方差无失真响应波束形成(MVDR)
一、概述 本节我们讨论最 小 方 差 无 失 真 响 应 (Minimum Variance Distortionless Response, MVDR)波束形成算法,包括原理分析及代码实现。 更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习…...
初阶数据结构--链式二叉树
二叉树(链式结构) 前面的文章首先介绍了树的相关概念,阐述了树的存储结构是分为顺序结构和链式结构。其中顺序结构存储的方式叫做堆,并且对堆这个数据结构进行了模拟实现,并进行了相关拓展,接下来会针对链…...
嵌入式硬件篇---单片机周期
文章目录 前言 前言 在单片机中,时序控制是其执行指令和协调外设的核心基础。以下是单片机中常见的各种周期及其详细说明,以层次结构展开: 时钟周期(Clock Cycle) 定义: 时钟周期是单片机的最小时间单位&a…...
嵌入式硬件篇---加法减法积分微分器
文章目录 前言 前言 在模拟电子技术中,加法器、减法器、积分器和微分器是基本的运算电路,通常基于运算放大器(运放)实现。以下是它们的核心原理、典型结构和应用场景: 加法器(Summing Amplifier࿰…...
解决使用VsCode远程ssh连接虚拟机ubuntu需要重复输入密码
1. windows打开windows powershell并输入如下命令 ssh-keygen -t ed25519 -C 你的随意一个邮箱2. 从路径C:\Users\PC.ssh下找到id_ed25519.pub并打开 复制里面全部内容 3. 切换到ubuntu $ cd .ssh/ $ vi authorized_keys 将前一步复制的内容粘贴进去并保存4. vscode重新连接…...
1558 找素数
1558 找素数 ⭐️难度:中等 🌟考点:质数 📖 📚 import java.util.Scanner; import java.util.Arrays;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int a sc.…...
[Android] PDF编辑器 Xodo PDF Reader 9.13.3 (不完全汉化,能用)
[Android] PDF编辑器 Xodo PDF 链接:https://pan.xunlei.com/s/VONeDpxJVwfmeSZu36RvZzSfA1?pwdv67d# 全面的 PDF 查看和批注 支持多种文件格式,包括 PDF 和 Microsoft Office 文档。提供用于添加注释、突出显示文本和为内容添加下划线的工具。包括夜…...
STM32LL库编程系列第八讲——ADC模数转换
系列文章目录 往期文章 STM32LL库编程系列第一讲——Delay精准延时函数(详细,适合新手) STM32LL库编程系列第二讲——蓝牙USART串口通信(步骤详细、原理清晰) STM32LL库编程系列第三讲——USARTDMA通信 STM32LL库编程…...
forms+windows添加激活水印
formswindows添加激活水印 多语言水印文本,根据系统语言自动切换。水印显示在每个屏幕的右下角,位置动态调整。半透明灰色文字,微软雅黑字体。窗口无边框、置顶、透明背景,不干扰用户操作。支持多显示器。高DPI适配。 效果图&am…...
ubuntu 服务器版本网络安全
1. 系统更新与补丁管理 定期更新系统 sudo apt update && sudo apt upgrade -y # 更新所有软件包 sudo apt autoremove # 清理旧内核和依赖启用自动安全更新 修改 /etc/apt/apt.conf.d/50unattended-upgrades,确保安全更新自动安装: Unatt…...
C++之map,set的实现
目录 一、红黑树的修改 1.1、节点结构 1.2、迭代器 1.3、红黑树的结构 二、map的封装 三、set的封装 一、红黑树的修改 首先,我们使用红黑树来封装map和set,其次我们实现的map和set想要复用同一个红黑树,所以我们需要对之…...
Elasticsearch:使用稀疏向量提升相关性
作者:来自 Elastic Vincent Bosc 学习如何在 Elasticsearch 中使用稀疏向量,以最小的复杂性提升相关性并实现搜索结果个性化。 稀疏向量是 ELSER 中的关键组件,但它们的用途远不止于此。在这篇文章中,我们将探讨稀疏向量如何在电商…...
SQL:Normalization(范式化)
目录 Normalization(范式化) 为什么需要 Normalization? 🧩 表格分析: 第一范式(1NF) 什么是第一范式(First Normal Form)? 第二范式(2NF&am…...
在pycharm中搭建yolo11分类检测系统1--PyQt5学习(一)
实验条件:pycharm24.3autodlyolov11环境PyQt5 如果pycharm还没有配PyQt5的话就先去看我原先写的这篇博文: PyQT5安装搭配QT DesignerPycharm)-CSDN博客 跟练参考文章: 目标检测系列(四)利用pyqt5实现yo…...
Neo4j GDS-12-neo4j GDS 库中节点插入(Node Embedding)算法介绍
neo4j GDS 系列 Neo4j APOC-01-图数据库 apoc 插件介绍 Neo4j GDS-01-graph-data-science 图数据科学插件库概览 Neo4j GDS-02-graph-data-science 插件库安装实战笔记 Neo4j GDS-03-graph-data-science 简单聊一聊图数据科学插件库 Neo4j GDS-04-图的中心性分析介绍 Neo…...
【论文阅读】RMA: Rapid Motor Adaptation for Legged Robots
Paper: https://arxiv.org/abs/2107.04034Project: https://ashish-kmr.github.io/rma-legged-robots/Code: https://github.com/antonilo/rl_locomotion训练环境:Raisim 1.方法 RMA(Rapid Motor Adaptation)算法通过两阶段训练实现四足机器…...
C语言数据结构:树的实现、前序、中序、后序遍历
一、什么是树 树是一种非线性的数据结构,由若干个节点组成。每个节点都包含数据,并且可以有多个子节点。树的最顶端是一个特殊的节点,叫根节点,它没有父节点。从根节点开始,树不断向下分叉,形成不同的层次…...
PostgreSQL:逻辑复制与物理复制
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
单片机Day05---动态数码管显示01234567
一、原理图 数组索引段码值二进制显示内容00x3f0011 1111010x060000 0110120x5b0101 1011230x4f0100 1111340x660110 0110450x6d0110 1101560x7d0111 1101670x070000 0111780x7f0111 1111890x6f0110 11119100x770111 0111A110x7c0111 1100B120x390011 1001C130x5e0101 1110D140…...
STM32江科大-----SPI
声明:本人跟随b站江科大学习,本文章是观看完视频后的一些个人总结和经验分享,也同时为了方便日后的复习,如果有错误请各位大佬指出,如果对你有帮助可以点个赞小小鼓励一下,本文章建议配合原视频使用❤️ 如…...
OBS SDK 中 ffmpeg_muxer 与 ffmpeg_output 的区别与使用 QSV 编码器的正确方式
在使用 OBS SDK 开发录制或推流功能时,开发者可能会遇到两个看似相似却完全不同的输出类型:ffmpeg_muxer 和 ffmpeg_output。它们的使用方式、编码器支持范围以及配置方式都有显著区别,特别是在使用硬件编码器(如 Intel QSV)时,选择正确的输出类型至关重要。 本文将重点…...
基于AOP+Log4Net+AutoFac日志框架
1.项目概述 这是一个基于 C# 的 WPF 项目 WpfApp12log4net,它综合运用了依赖注入、日志记录和接口实现等多种技术,同时使用了 Autofac、Castle.Core 和 log4net 等第三方库。 2.配置log4net 新建一个Log4Net.config,配置需要记录的日志信息…...
【Hadoop入门】Hadoop生态之Yarn简介
1 什么是Yarn? Yarn(Yet Another Resource Negotiator) 是Hadoop生态系统中的资源管理和调度框架,负责为上层应用提供统一的资源管理和调度服务。 是Hadoop 2.0引入的重要架构改进,成为Hadoop集群的资源管理层…...
猫咪如厕检测与分类识别系统系列【三】融合yolov11目标检测
✅ 前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠…...
qt的基本使用
先教大家如何基本使用qt,这样是为了后面的服务器使用做铺垫 安装测试用例的创建创建qt界面程序后讲解各文件的作用qt的界面控件实现逻辑功能的流程测试效果 我会写一个测试用例方便大家了解与使用 安装 参考这个文章来安装,链接: qt安装 测试用例的创建…...
Spring AI使用tool Calling和MCP
深入探索 Spring AI Spring AI版本1.0.0.M6 在人工智能与软件开发深度融合的时代,Spring AI 作为一个强大的框架,持续为开发者提供着高效且便捷的工具,以实现与大语言模型(LLM)的无缝交互。Spring AI 的最新版本引入了…...
【前端】webpack一本通
今日更新完毕,不定期补充,建议关注收藏点赞。 目录 简介使用webpack默认只能处理js文件 ->引入加载器对JS语法降级,兼容低版本语法合并文件再次打包进阶 工作原理html-webpack-plugin插件webpack开发服务器引入使用webpack-dev-server模块…...
STM32蓝牙连接Android实现云端数据通信(电机控制-开源)
引言 基于 STM32F103C8T6 最小系统板完成电机控制。这个小项目采用 HAL 库方法实现,通过 CubeMAX 配置相关引脚,步进电机使用 28BYJ-48 (四相五线式步进电机),程序通过蓝牙连接手机 APP 端进行数据收发, OL…...