[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-public-zz39u4vv":3,"public-project-articles-zz39u4vv":17},{"id":4,"uuid":5,"project_id":6,"title":7,"content":8,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},1219,"zz39u4vv",60,"01. SpringBoot4零基础入门实战","## 需要学习基础吗？\n\n需要但是不多。JavaSE 稍微看下就可以了，了解数据类型、类和对象、List、Map 等数据结构即可\n\n## 安装软件\n\n+ JDK21：[https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fjavase\u002Fjdk21-archive-downloads.html](https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fjavase\u002Fjdk21-archive-downloads.html)\n+ Maven：[https:\u002F\u002Fmaven.apache.org\u002Fdownload.cgi](https:\u002F\u002Fmaven.apache.org\u002Fdownload.cgi)\n+ MySQL：[https:\u002F\u002Fdev.mysql.com\u002Fdownloads\u002Finstaller\u002F](https:\u002F\u002Fdev.mysql.com\u002Fdownloads\u002Finstaller\u002F)\n+ IDEA：[https:\u002F\u002Fwww.jetbrains.com\u002Fidea\u002Fdownload\u002Fother\u002F#releases-2024](https:\u002F\u002Fwww.jetbrains.com\u002Fidea\u002Fdownload\u002Fother\u002F#releases-2024)\n\n**MySQL 的密码设置为 123456**\n\n****\n\nmaven 的 settings.xml 配置：\n\n\u003ClocalRepository>D:\\soft\\apache-maven-3.8.1\\repo\u003C\u002FlocalRepository>\n\n```xml\n\u003Cmirror>\n    \u003Cid>nexus-aliyun\u003C\u002Fid>\n    \u003CmirrorOf>central\u003C\u002FmirrorOf>\n    \u003Cname>Nexus aliyun\u003C\u002Fname>\n    \u003Curl>http:\u002F\u002Fmaven.aliyun.com\u002Fnexus\u002Fcontent\u002Fgroups\u002Fpublic\u003C\u002Furl>\n\u003C\u002Fmirror>\n```\n\n\n公众号：**程序员青戈**，回复：**软件**\n\n## 新建项目\n\n\u003C!-- 这是一张图片，ocr 内容为：NEW PROJECT SERVER URL: STARTSPRING.IO NEW PROJECT NAME: JAVA SPRINGBOOT KOTLIN D:\\项目实战从0带敲(SPRINGBOOT+VUE零基础入门教学\\SPRINGBOOT VUE LOCATION: GROOVY PROJECT WILL BE CREATEDIN:DA项目实战以D带数ISPRINGBOOT+VUE零基础入门救学\\SPRINGBOOT VUE\\SPRINGBOOT VUE\u002FSPRINGBOOT EMPTY PROJECT CREATE GIT REPOSITORY GENERATORS LANGUAGE: KOTLIN JAVA GROOVY MAVEN ARCHETYPE JAKARTA EE TYPE: MAVEN GRADLE-GROOVY GRADLE-KOTLIN SPRING BOOT JAVAFX GROUP: ? COM.EXAMPLE QUARKUS N MICRONAUT ARTIFACT: SPRINGBOOT KTOR PACKAGE NAME: COM.EXAMPLE COMPOSE FOR DESKTOP HTML 21 JAVA VERSION'21.0.1\" JDK: REACT EX EXPRESS 21 JAVA: ANGULAR CLI VUE.JS PACKAGING: WAR JAR VITE MORE VIA PLUGINS... NEXT CANCEL -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259079883-878ca0a2-0144-4f84-ba43-e47a161dcaca.png)\n\n选择 web、jpa、mysql、lombok\n\n\u003C!-- 这是一张图片，ocr 内容为：NEW PROJECT 4.0.2 SPRING BOOT: DEPENDENCIES: DEVELOPER TOOLS WEB NOTHING SELECTED TEMPLATE ENGINES SECURITY SOL NOSQL MESSAGING 1\u002F0 SDO ADDED DEPENDENCIES: OBSERVABILITY TESTING SPRING WEB SPRING CLOUD SPRING DATA JPA SPRING CLOUD CONFIG MYSQL DRIVER SPRING G CLOUD DISCOVERY LOMBOK SPRING CLOUD ROUTING SPRING CLOUD CIRCUIT BREAKER SPRING CLOUD MESSAGING VMWARE TANZU APPLICATION SERVICE VMWARE T RE TANZU SPRING ENTERPRISE EXTENSIONS PREVIOUS CANCEL CREATE -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259187152-d2c0e3a9-ac63-4659-a1d6-cab772805faf.png)\n\n编码配置\n\n\u003C!-- 这是一张图片，ocr 内容为：SETTINGS FILE ENCODINGS EDITOR X ENC GLOBAL ENCODING: KEYMAP UTF-8 EDITOR PROJECT ENCODING: UTF-8 GENERAL CONSOLE ENCODING PATH INSPECTIONS UTF-8 ...\\SRC\\MAINYA FILE ENCODINGS LIVE TEMPLATES INTENTIONS PLUGINS TOOLS SSH TERMINAL ADVANCED SETTINGS TO CHANGE ENCODING INTELIL IDEA USES FOR A FLE, A DRECTORY,OR THE ENTRE PRDJECT ENCODING IST ONCODING IST  BUIT- BUIT-N   HERE, IF NOT SPECTIED,FILES AND DRECTORIES INHERT ENCODING SETTINGS FROM THE PARENT DFRECTORY OR FROFECT ENCODING DEFAULT ENCODING FOR PROPERTIES FILES: UTF-8 TRANSPARENT NATIVE-TO-ASCII CONVERSION CREATE UTF-8 FILES: WITH NO BOM IDEA WILL NOT ADD UTF-8 BOM A TO EVERY CREATED FILE IN UTF-8 ENCODING CANCEL OK APPLY -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259287529-c28f59cf-30e5-437a-a17c-2bfd912e6103.png)\n\n配置 maven\n\n\u003C!-- 这是一张图片，ocr 内容为：SETTINGS BUILD,EXECUTION,DEPLOYMENT > BUILD TOOLS > MAVEN RESET X MAVEN APPEARANCE&BEHAVIOR WORK OFFLINE NOTIFICATIONS EXECUTE GOALS RECURSIVELY KEYMAP PRINT EXCEPTION STACK TRACES EDITOR ALWAYS UPDATE SNAPSHOTS 日 INSPECTIONS LIVE TEMPLATES OUTPUT LEVEL: INFO PLUGINS CHECKSUM POLICY: NO GLOBAL POLICY BUILD,EXECUTION,DEPLOYMENT BUILD TOOLS MULTIPROJECT BUILD FAIL POLICY: DEFAULT MAVEN THREAD COUNT TOPTION LMPORTING LANORED FILES D:\\SOFT\\APACHE-MAVEN-3.8.1 MAVEN HOME PATH RUNNER (VERSION:3.8.1) RUNNING TESTS 日 D:\\SOFT\\APACHE-MAVEN-3.8.1\\CONF\\SETTINGS.XML USER SETTINGS FILE: OVERRIDE 日 REPOSITORIES ARCHETYPE CATALOGS 日 D:\\SOFT\\APACHE-MAVEN-3.8.1\\REPO OVERRIDE LOCAL REPOSITORY: COMPILER USE SETTINGS FROM MVN\u002FMAVEN.CONFIG KOTLIN COMPILER REMOTE JAR REPOSITORIES OK CANCEL APPLY -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259353400-cec8d940-1bdd-4662-a899-37be46cecd69.png)\n\n精简项目\n\n\u003C!-- 这是一张图片，ocr 内容为：SSPRINGBOOT D:\\项目实战从0带敲\\SPRINGBOOT+VUE零基础入门教学\\SPRINGBOOT VUE零基础入门教学\\SPRINGBOOT+VUE零基础入门教学\\SPRINGBOOT  IDEA SRC MAIN JAVA COM.EXAMPLE SPRINGBOOTAPPLICATION RESOURCES APPLICATIONPROPERTIES MPOM.XML EXTERNAL LIBRARIES SCRATCHES AND CONSOLES -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259453012-282fb4d1-7ce3-43f0-b654-cf59f7e62dc8.png)\n\n\u003C!-- 这是一张图片，ocr 内容为：RUN CO SPRINGBOOTAPPLICATION ACTUATOR 中回 DESCRIPTION: FAILED TO CONFIGURE A DATASOURCE:'URL' ATTRIBUTE IS NOT SP E SPECIFIED AND NO EMBEDDED DATASOURCE COULD BE CONFIGURED. REASON: FAILED TO DETERMINE A SUITABLE DRIVER CLASS 查看后端SPRINGBOOT服务的所有的错误日志 ACTION: CONSIDER THE FOLLOWING: 7 IF YOU WANT AN EMBEDDED DATABASE (H2, HSQL OR DERBY), PLEASE PUT IT ON THE CLASSPATH, IT VOU HAVE DARABOSS SOTTEN  TO  BS  BROFILES  A  PAREIN AN AN AN RAY NRED  5TUATE IT        OUNTY AN PROCESS FINISHED WITH EXIT CODE L -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259622461-68e17dea-1a86-49c8-a6a1-ac6b992840a0.png)\n\n## 新建数据库\n\n查看本地的 Mysql 服务\n\n\u003C!-- 这是一张图片，ocr 内容为：计算机管理 文件(F) 查看(V) 帮助(H) 操作(A) 计算机管理(本地) 服务 系统工具 登录为 启动类型 名称 描述状态 MYSQL80 任务计划程序 本地系统 手动 MICROSOFT EDGE ELEVATION S..... 事件查看器 停止此服务 共享文件夹 MICROSOFT EDGE UPDATE SER...使你... 自动(延迟...本地系统 暂停此服务 本地用户和组 手动(触发...本地系统 MICROSOFT EDGE UPDATE SER... 使你... 重启动此服务 性能 手动 本地系统 MICROSOFT ISCSI INITIATOR SER... 设备管理器 本地系统 手动(触发... MICROSOFT PASSPORT 为用... 存储 MICROSOFT PASSPORT CONTAINER 管理... 手动(触发... 本地服务 磁盘管理 本地系统 MICROSOFT PC MANAGERV.........正在........ 自动 服务和应用程序 MICROSOFT SOFTWARE SHADO... 服务 手动 本地系统 WMI控件 手动 网络服务 MICROSOFT STORAGE SPACES S.... MICR... 手动 本地系统 MICROSOFTSTORE安装服务 为M... 正在... 手动(触发...本地服务 MICROSOFT WINDOWS SMS路...根据... 禁用 本地系统 控制... MICROSOFT键盘筛选器 手动(触发...本地服务 MICROSOFT使用情况和质量... 生成... 手动 支持... MICROSOFT云标识服务 网络服务 自动 正在.. 网络服务 MYSQL80 本地系统 自动 正在... NAHI... NAHIMIC SERVICE 本地服务 NET.TCPPORT SHARING SERVICE 提供... 禁用 手动 本地系统 为用... NETLOGON NETWORK CONNECTED DEVIC... 网络... 手动(触发...本地服务 允许.....手动(触发....本地系统 NETWORK CONNECTION BROKER 本地系统 NLATHARK CANNECTIONE 管理 -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259775566-5bdcba54-3400-4545-be19-d94eabd046c6.png)\n\n\nIDEA 连接 MySQL 服务\n\n\u003C!-- 这是一张图片，ocr 内容为：DATA SOURCES AND DRIVERS DRIVERS DATA SOURCES LOCALHOST CREATE DDL MAPPING NAME: 十一国家L COMMENT: PROJECT DATA SOURCES KUBERNETES SCHEMAS SSH\u002FSSL ADVANCED OPTIONS GENERAL @LOCALHOST DRIVER: MYSQL SUPPORTS SINCE 5.2 CONNECTION TYPE:DEFAULT MORE OPTIONS PROBLEMS 3306 LOCALHOST HOST: PORT: USER & PASSWORD AUTHENTICATION: USER: ROOT PASSWORD: \u003CHIDDEN> FOREVER SAVE: DATABASE: JDBC:MYSGL:\u002F\u002FLOCALHOST:3306 URL: OVERRIDES SETTINGS ABOVE TEST CONNECTION MYSQL8.0.45 OK APPLY CANCEL -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770259913135-0f040c54-ff91-4ccc-9f2a-fecd3008e2cc.png)\n\n\nspringboot_vue\n\n## 配置 application.yml\n\n数据库\n\n```yaml\n# 配置数据库\nspring:\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    # springboot_vue 是你项目的数据库名称  可以替换\n    url: jdbc:mysql:\u002F\u002Flocalhost:3306\u002Fspringboot_vue?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false\n    username: root    # 数据库账号\n    password: 123456  # 数据库密码\n\n```\n\n输入 [http:\u002F\u002Flocalhost:8080\u002F](http:\u002F\u002Flocalhost:8080\u002F)  访问\n\n\u003C!-- 这是一张图片，ocr 内容为：WHITELABELERROR PAGE THIS APPLICATION HAS HAS NO EXPLICIT MAPPING FOR \u002FERROR, SO YOU ARE SEEING THIS AS A FALLBACK. THU FEB 05 10:56:49 GMT+08:0026 THERE WAS AN UNEXPECTED ERROR (TYPE-NOT FOUND, STATUS-404). -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770260220216-2e094608-8b8d-44de-b574-0a27911b20ea.png)\n\n\n端口\n\n```yaml\nserver:\n  port: 9090  # 项目端口号\n```\n\n## 写一个测试接口\n\n```java\n@RestController\npublic class WebController {\n\n    @GetMapping(\"\u002F\")\n    public String index() {\n        return \"Hello 青哥哥\";\n    }\n\n}\n```\n\n## 封装统一返回结果\n\n```java\npackage com.example.common;\n\nimport lombok.Data;\n\n@Data\npublic class Result {\n    private static final String SUCCESS_CODE = \"200\";\n    private static final String ERROR_CODE = \"500\";\n\n    private String code;\n    private String msg;\n    private Object data;\n\n    public static Result success() {\n        Result result = new Result();\n        result.setCode(SUCCESS_CODE);\n        result.setMsg(\"请求成功\");\n        return result;\n    }\n\n    public static Result success(Object data) {\n        Result result = success();\n        result.setData(data);\n        return result;\n    }\n\n    public static Result error(String msg) {\n        Result result = new Result();\n        result.setCode(ERROR_CODE);\n        result.setMsg(msg);\n        return result;\n    }\n\n    public static Result error(String code, String msg) {\n        Result result = error(msg);\n        result.setCode(code);\n        return result;\n    }\n\n}\n\n```\n\n\n**配置 Lombok（非常重要）**\n\n\u003C!-- 这是一张图片，ocr 内容为：SETTINGS > ANNOTATION PROCESSORS COMPILER BUILD,EXECUTION,DEPLOYMENT APPEARANCE&BEHAVIOR ENABLE ANNOTATION PROCESSING KEYMAP DEFAULT OBTAIN PROCESSORS FROM PROJECT CLASSPATH EDITOR ANNOTATION PROFILE FOR SPRINGBOOT PROCESSOR PATH: PLUGINS SPRINGBOOT VERSION CONTROL D:LSOFTLAPACHE-MAVEN-3.8.1\\REPOLORG\\PROJECTLOMBOKLOMBOKLUNKNOWN\\LOMBOK-UNKNOWNJER BUILD,EXECUTION, DEPLOYMENT USE --PROCESSOR-MODULE-PATH COMPILER OPTION (FOR JAVA 9 AND LATER) BUILD TOOLS COMPILER MODULE OUTPUT DIRECTORY MODULE CONTENT ROOT STORE GENERATED SOURCES RELATIVE TO: EXCLUDES PRODUCTION SOURCES DIRECTORY: TARGET\\GENERATED-SOURCES\u002FANNOTATIONS JAVA COMPILER ANNOTATION PROCESSORS TEST SOURCES DIRECTORY: TARGET\\GENERATED-TEST-SOURCES\\TEST-ANNOTATIONS VALIDATION RUN PROCESSORS IN A SEPARATE STEP BEFORE COMPILING JAVA (-PROC:ONLY MODE) RML COMPILER 日 GROOVY COMPILER  ANNOTATION PROCESSORS. 日 KOTLIN COMPILER DEBUGGER PROCESSOR FQ NAME REMOTE JAR REPOSITORIES COMPILER WILL RUN ALL AUTOMATICALLY DISCOVERED PROCESSORS DEPLOYMENT APPLICATION SERVERS  ANNOTATION PROCESSOR OPTIONS: COVERAGE DOCKER VALUE OPTION NAME JAVA PROFILER NO PROCESSOR-SPECIFIC OPTIONS CONFIGURED KUBERNETES REQUIRED PLUGINS CANCEL OK APPLY -->\n![](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2026\u002Fpng\u002F751015\u002F1770261955104-8b3e70ee-d851-4b3f-b252-04b1bd01e68d.png)\n\n## 连接数据库查询数据\n\n创建数据库表 admin\n\n```sql\nCREATE TABLE `admin` (\n  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',\n  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',\n  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',\n  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',\n  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像',\n  `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '角色',\n  PRIMARY KEY (`id`) USING BTREE,\n  UNIQUE KEY `username` (`username`) USING BTREE\n) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='管理员信息';\n```\n\norm 框架 jpa 配置\n\n```yaml\n  # 配置 jap方言\n  jpa:\n    database-platform: org.hibernate.dialect.MySQLDialect\n    hibernate:\n      ddl-auto: none  # 手动创建数据库\n    show-sql: true\n```\n\n打印 sql 配置\n\n```yaml\n  # 美化打印sql\n  jpa:\n    database-platform: org.hibernate.dialect.MySQLDialect\n    hibernate:\n      ddl-auto: none  # 手动创建数据库\n    show-sql: true\n```\n\n\n分层 controller、service、repository \n\n```java\n@RestController\n@RequestMapping(\"\u002Fadmin\")\npublic class AdminController {\n    \n}\n```\n\nservice\n\n```java\n@Service\npublic class AdminService {\n    \n}\n```\n\nrepository\n\n```java\n@Repository \u002F\u002F 标记为一个仓库组件\npublic interface AdminRepository extends JpaRepository\u003CAdmin, Integer> {\n\n}\n```\n\n## 测试接口\n\nhttp:\u002F\u002Flocalhost:9090\u002Fadmin\u002FfindAll\n\n## 配置 swagger 接口文档\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>org.springdoc\u003C\u002FgroupId>\n    \u003CartifactId>springdoc-openapi-starter-webmvc-ui\u003C\u002FartifactId>\n    \u003Cversion>2.8.5\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n核心配置\n\n```java\npackage com.example.common;\n\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Contact;\nimport io.swagger.v3.oas.models.info.Info;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n\u002F**\n * Swagger文档配置\n *\u002F\n@Configuration\npublic class SwaggerConfig {\n\n    @Bean\n    public OpenAPI customOpenAPI() {\n        return new OpenAPI()\n                .info(new Info()\n                        .title(\"Spring Boot 4 API接口文档\")\n                        .version(\"1.0.0\")\n                        .description(\"本文档涵盖了所有模块的接口说明\")\n                        .contact(new Contact().name(\"程序员青戈\").url(\"https:\u002F\u002Fcodenice.cn\")));\n    }\n\n}\n\n```\n\n## [http:\u002F\u002Flocalhost:9090\u002Fswagger-ui.html](http:\u002F\u002Flocalhost:9090\u002Fswagger-ui.html)\n\n\n## 一键三连支持一波~\n\n","coding",1,745,2376,"2026-02-05 12:35:53","2026-05-07 15:36:12.649662+00","2026最新基于SpringBoot4+Vue3零基础入门项目实战教学","springboot4-vue3-tutorial",{"project":18,"items":19},{"id":6,"title":15,"slug":16},[20,21,29,36],{"id":4,"uuid":5,"project_id":6,"title":7,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},{"id":22,"uuid":23,"project_id":6,"title":24,"type":9,"status":10,"public_enabled":10,"views":25,"sort":26,"created_at":27,"updated_at":28,"project_title":15,"project_slug":16},1220,"mbxrGCSA","02. 学习SpringBoot4+JPA基本的增删改查接口",257,2377,"2026-02-06 12:26:55","2026-05-03 22:49:02",{"id":30,"uuid":31,"project_id":6,"title":32,"type":9,"status":10,"public_enabled":10,"views":33,"sort":34,"created_at":35,"updated_at":28,"project_title":15,"project_slug":16},1221,"eQlrBI25","03. 使用代码生成器自动生成后端代码",195,2381,"2026-02-09 11:13:19",{"id":37,"uuid":38,"project_id":6,"title":39,"type":9,"status":10,"public_enabled":10,"views":40,"sort":41,"created_at":42,"updated_at":28,"project_title":15,"project_slug":16},1222,"Ni0HTQnR","04. Vue3零基础快速入门实战",228,2387,"2026-02-10 11:39:21"]