大家好,我是小镇做题家、独立开发者、AI技术观察员,AI编程助理小小程序员-小猿
我会在这里分享关于独立开发、AI编程技术、技术分享等内容,欢迎关注。
个人网站:www.pmmock.com
技术群、副业群、AI交流群等,想入群可以在我个人网站联系我或微信搜索brushwei加我。
如果觉得本文有用,一键三连(点赞、评论、转发),就是对我最大的支持。
CMS融合SpringBoot技术实录
继续上一个文章,把CMS融到SpringBoot里,简单做个官网搞一套cms系统。
过程
1. 手动创建空白SpringBoot项目
spring init --dependencies=web ruoyi-cms
2. AI设计企业级CMS方案
提问:我需要开发一套面向企业级的cms系统,要求基于当前springboot模块进行开发面向用户的官网内容展示,cms系统支持内容管理,请先帮我设计一套面向用户的企业级cms内容管理的sql数据表。
AI回应:
- 数据表设计:11张核心表(cms_content, cms_category, cms_tag等)
- SQL文件:
cms_core_schema.sql(含外键、索引、注释) - 架构文档:
README.md(技术栈、项目结构、API设计)
在生成sql的过程中,由于我此次想基于ruoyi项目进行集成,因此对于基础的数据表,是不需要继续生成的,但是此次依然生成了相关的数据表,因此需要AI只生成内容核心的表即可,同时发现对于枚举类型的字段,AI也进行了生成对应的索引,在实际规范中,对于这种字段是可以不用索引的,因此可以进行删除。
3. 基于数据表生成Java代码
提问:基于数据表生成完整Java代码\
AI生成:
// 实体类
CmsContent.java(Lombok注解)
CmsCategory.java
CmsTag.java
// Mapper接口
CmsContentMapper.java(继承BaseMapper)
CmsCategoryMapper.java
CmsTagMapper.java
// Service层
CmsContentService.java(分页查询)
CmsCategoryService.java
CmsTagService.java
// Controller
CmsContentController.java(RESTful API)
CmsCategoryController.java
CmsTagController.java
// 配置类
MyBatisPlusConfig.java(分页插件)
生成的结果中,他并不能生成所有的数据表的代码,同时生成的过程中,他会把后台管理等所有的代码都生成,容易产生很多冗余的代码,因此此处建议使用最好使用其他第三方插件生成基础的代码后按需让AI增加相应的方法。
4. 生成前端HTML代码
提问:生成响应式官网前端代码\
AI生成:
index.html(响应式布局,蓝色主题)style.css(移动端适配,动画效果)main.js(交互逻辑,懒加载)
此处他生成只会按照纯前端的样式进行,可以直接复制上一篇文章我们进行过修改的样式过来使用,这一步的效果还可以。
5. 前端与SpringBoot融合
提问:前端如何与SpringBoot集成
AI生成:
templates/index.html(Thymeleaf模板)HomeController.java(@Controller处理"/"路径)application.yml(静态资源配置)
此处最好搭建好文件页面架构,AI对需求的理解依然还是偏差
实际集成问题与解决
| 问题 | 现象 | 解决方案 |
|---|---|---|
| Maven依赖冲突 | fastjson2-2.0.47.jar不存在 | 调整pom.xml版本号 |
| 配置冲突 | MyBatisPlus与现有配置冲突 | 简化MyBatisPlusConfig |
| 模板语法 | 静态HTML与Thymeleaf不兼容 | 使用th:href、th:src等标签 |
| 字段命名 | AI设计的字段与现有系统不一致 | 统一命名规范 |
| 代码复杂度 | AI生成2000+行,实际需求500行 | 保留核心功能,删除冗余代码 |
最终交付成果
技术架构
- 后端:SpringBoot 3.5.3 + MyBatis Plus 3.5.7 + MySQL 8.0
- 前端:Thymeleaf + Bootstrap + FontAwesome
- 部署:SpringBoot内嵌Tomcat
核心功能
- ✅ 响应式官网首页
- ✅ 内容展示API
- ✅ 蓝色主题设计
- ✅ 移动端适配
技术总结
AI能力边界
- ✅ 擅长:代码生成、文档编写
- ❌ 不擅长:架构设计、系统集成、配置冲突、需求理解
最佳实践
- 人工review必不可少
- 渐进式集成优于一次性重构
- 理解需求比生成代码更重要
- 保持技术栈一致性
经验提炼
- AI是优秀的代码生成器,但不是系统集成专家
- 复杂项目的约束条件需要人工判断
- 团队习惯和技术偏好无法通过AI自动适配
- 最终价值在于人机协作,而非AI替代
这次经历让我们清楚看到:AI给了我们很好的起点,但真正的价值在于理解边界,合理使用。