# SpringBootCpp **Repository Path**: MyDearest35/spring-boot-cpp ## Basic Information - **Project Name**: SpringBootCpp - **Description**: SpringBoot C++版 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-07 - **Last Updated**: 2025-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBootCpp ## 介绍 **SpringBootCpp项目框架——轻便使用的C++后端框架** SpringBootCpp的启发来自Java的SpringBoot框架,看上了Java的注解机制,网络后端处理能力。 所以学习SpringBoot。 ## 软件架构 软件架构说明: 1. 主用 C++ Boost 库去实现类似 Java SpringBoot 框架的功能 1. boost.asio 基础 tcp 层网络流 2. boost.beast 高级 http 层网络流 3. boost.mysql 数据库链接管理 4. boost.json JSON 字符串管理 ## 安装教程 1. 安装vcpkg包管理 ```shell .\vcpkg.exe integrate install .\vcpkg.exe install boost .\vcpkg.exe install opencv ``` 2. 可选的安装 ```shell .\vcpkg.exe install opencv[ffmpeg] .\vcpkg.exe install openssl .\vcpkg.exe install poco ``` ## 使用说明 1. 写法指南 - 需严格遵守 1. 模块里不要写 main() 函数,即使没写 export 也可能会意外启动此模块的 main() 函数 2. 在模块里使用 #include 的传统头文件时,最好用 module; export module xxxx; 包住,不包住可能会有意外的错误 3. 如果希望在 main() 函数调用之前,就启动特定的代码,可以用 class 包含,去写构造函数,然后生成一个全局变量即可。 但不建议用,因为若在 main() 函数之前有函数卡死,回溯不到相应的日志,且全局变量的构造函数调用,是随机的。 4. std::u8string u8s 转 std::string 类有两种方式: 1. 不安全但快速的 (std::string&)u8s; 2. 很安全但拷贝的范围构造函数 std::string(u8s.begin(), u8s.end()); 3. 建议用 std::u8string 类代替 std::wstring 类处理多字符编码 因为我们常用 UTF8 编码,所以 std::u8string 类是最优选择且还是单字节与 std::string 类方便相互转换 2. 常见错误与解决方案 1. 若 opencv2/opencv.hpp 找不到 1. win + r 运行 CMD 2. cd 到对应的 vcpkg-master\installed\x64-windows\include 目录 ```shell cd vcpkg-master\installed\x64-windows\include ``` 3. mklink 命令用于创建符号链接,它可以创建文件或目录的链接,使得可以从不同的路径访问相同的文件或目录。 ```shell mklink /J opencv2 opencv4\opencv2 ``` 4. mklink 命令全面讲解: 1. 命令模板 ```shell mklink /j "链接路径" "目标路径" ``` 其中,“链接路径”是你想要创建的新链接的路径,而“目标路径”是你想要链接到的实际目录的路径。 这两个路径都应该是绝对路径,并且如果路径中包含空格,应该用双引号括起来。 3. 例如,如果你想要将D:\实际文件夹目录链接到C:\链接文件夹,你可以使用以下命令: ```shell mklink /j "C:\链接文件夹" "D:\实际文件夹" ``` 执行此命令后,C:\链接文件夹将成为D:\实际文件夹的一个镜像, 所有对C:\链接文件夹的读写操作实际上都是在D:\实际文件夹上进行的。 2. 远程 moonlight 使用 visual studio 黑屏 1. 工具 -> 选项 -> 环境 -> 常规 -> 基于客户端性能自动显示设置 -> 关闭硬件加速 !["Moonlight"](./MarkDown/MoonlightBlackscreen.jpg "Moonlight黑屏解决方案") 3. 解决方案资源管理器 显示是文件夹视图而非项目视图,且启动项需要手动指定 1. 双击 .sln 文件即可进入项目视图,启动项也会恢复正常 2. 原链接:https://blog.csdn.net/John_Snowww/article/details/144413022 4. 如何预览 MarkDown 文件 1. Visual Studio 2022 版本是支持自带预览,打开文件 -> 左上角有预览选项 2. ![这是图片](./MarkDown/previewMD.png "MarkDown文件的预览") 4. 可选的使用 1. 【项目属性】->【链接器】->【系统】->【子系统】修改为窗口 https://blog.csdn.net/haimianjie2012/article/details/127783581 #### 参与贡献 1. **LaoZu** Fork 本仓库 2. **Chao** New ChaoZuController 分支 3. **LaoZu** 提交代码 4. **LaoZu** 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)