当前位置: 首页 > web >正文

基于Springboot+UniApp+Ai实现模拟面试小工具二:后端项目搭建

  本节介绍本项目后端项目的开发工具及基础项目的搭建,包括开发工具介绍及后端项目的创建和依赖框架的引入及对应配置。
在这里插入图片描述
源码下载: 点击下载
讲解视频:

Uniapp+Springboot+Kimi实现模拟面试小程序-Springboot项目创建

一.开发工具

1.1 开发工具

  • 前端: Visual Studio Code
  • 后端: IntelliJ IDEA Community Edition 2024.2.1
  • 移动端: HBuilderX/微信开发者工具

1.2 运行环境

  • 前端:
    1. nodejs v20.17.0
    2. npm 10.8.2
    3. vue3
  • 后端:
    1. jdk8
    2. mysql 8.0
    3. springboot 3.4.0
  • 移动端:
    1. uniapp
    2. 微信小程序

1.3 第三方资源

  使用kimi开发者平台,网址:https://platform.moonshot.cn/docs/api/chat#%E5%85%AC%E5%BC%80%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%9C%B0%E5%9D%80
  需注册账号并创建项目:
在这里插入图片描述
  创建apikey:
在这里插入图片描述

二.项目搭建

2.1 项目创建

  使用spring官网工具创建maven项目,路径:https://start.spring.io/
在这里插入图片描述
添加依赖项:
在这里插入图片描述
添加完依赖后导出pom文件:
在这里插入图片描述
导出后将项目导入idea,并进行maven导入:
在这里插入图片描述

2.2 依赖库引入

  项目依赖maven创建,具体如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.0-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.junjunjun</groupId><artifactId>aiwork</artifactId><version>0.0.1-SNAPSHOT</version><name>aiwork</name><description>人工智能模拟面试小工具</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-resource-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.2.0.Final</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.9</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>3.5.9</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.25</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp-sse</artifactId><version>4.10.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>3.2.0</version><executions><execution><id>add-source</id><phase>generate-sources</phase><goals><goal>add-source</goal></goals><configuration><sources><source>src/main/java</source><source>src/main/api</source><source>src/main/dao</source><source>src/main/entity</source><source>src/main/sdk</source><source>src/main/vo</source><source>src/main/service</source><!-- 你可以添加更多的源代码目录 --></sources></configuration></execution></executions></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>
<!--			<plugin>-->
<!--				<groupId>org.apache.maven.plugins</groupId>-->
<!--				<artifactId>maven-compiler-plugin</artifactId>-->
<!--				<configuration>-->
<!--					<source>17</source>-->
<!--					<target>17</target>-->
<!--				</configuration>-->
<!--			</plugin>--></plugins><resources><resource><directory>src/main/resources</directory></resource></resources></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository><repository><id>snapshots</id><url>https://oss.sonatype.org/content/repositories/snapshots/</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></pluginRepository><pluginRepository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></pluginRepository></pluginRepositories></project>

2.3 项目结构

  创建相关项目包,包括api/service/dao/vo/entity/等项目包,具体项目结构如下:
在这里插入图片描述

2.4 数据库表

/*Navicat Premium Data TransferSource Server         : localhostSource Server Type    : MySQLSource Server Version : 80028Source Host           : localhost:3306Source Schema         : ai_workTarget Server Type    : MySQLTarget Server Version : 80028File Encoding         : 65001Date: 11/07/2025 21:12:48
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for junjunjun_interview
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_interview`;
CREATE TABLE `junjunjun_interview`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0',`date` datetime NOT NULL,`job` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`user` bigint NULL DEFAULT NULL,`resume` bigint NULL DEFAULT NULL,`result` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`scope` double NULL DEFAULT 0,`status` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1',`type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `user_account`(`date` ASC) USING BTREE,INDEX `user`(`user` ASC) USING BTREE,INDEX `resume`(`resume` ASC) USING BTREE,CONSTRAINT `junjunjun_interview_ibfk_1` FOREIGN KEY (`user`) REFERENCES `junjunjun_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `junjunjun_interview_ibfk_2` FOREIGN KEY (`resume`) REFERENCES `junjunjun_resume` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 128 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_log
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_log`;
CREATE TABLE `junjunjun_log`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`date` datetime NOT NULL,`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`username` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`param` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`ip` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`requestmethod` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 151 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_menu
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_menu`;
CREATE TABLE `junjunjun_menu`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`compontent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`type` varchar(2) CHARACTER SET utf16le COLLATE utf16le_general_ci NULL DEFAULT NULL,`sort_` int NULL DEFAULT NULL,`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`parent_id` bigint NULL DEFAULT NULL,`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,INDEX `parent_id`(`parent_id` ASC) USING BTREE,CONSTRAINT `junjunjun_menu_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `junjunjun_menu` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 41 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_question_item
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_question_item`;
CREATE TABLE `junjunjun_question_item`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`question` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`interview` bigint NOT NULL,PRIMARY KEY (`id`) USING BTREE,INDEX `junjunjun_question_item_ibfk_1`(`interview` ASC) USING BTREE,CONSTRAINT `junjunjun_question_item_ibfk_1` FOREIGN KEY (`interview`) REFERENCES `junjunjun_interview` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 110 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_resume
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_resume`;
CREATE TABLE `junjunjun_resume`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`tag` varchar(255) CHARACTER SET utf16le COLLATE utf16le_general_ci NULL DEFAULT NULL,`create_date` datetime NULL DEFAULT NULL,`user_id` bigint NULL DEFAULT NULL,`fileinfo` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `user_account`(`file` ASC) USING BTREE,INDEX `junjunjun_resume_ibfk_1`(`user_id` ASC) USING BTREE,CONSTRAINT `junjunjun_resume_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `junjunjun_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_role
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_role`;
CREATE TABLE `junjunjun_role`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_role_menu_item
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_role_menu_item`;
CREATE TABLE `junjunjun_role_menu_item`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`menu_id` bigint NOT NULL,`role_id` bigint NOT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `user_roel`(`menu_id` ASC, `role_id` ASC) USING BTREE,INDEX `role_id`(`role_id` ASC) USING BTREE,CONSTRAINT `junjunjun_role_menu_item_ibfk_1` FOREIGN KEY (`menu_id`) REFERENCES `junjunjun_menu` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `junjunjun_role_menu_item_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `junjunjun_role` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 87 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_setting
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_setting`;
CREATE TABLE `junjunjun_setting`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`key_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_user
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_user`;
CREATE TABLE `junjunjun_user`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`account` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`header` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`sex` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`openid` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `user_account`(`account` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for junjunjun_user_role_item
-- ----------------------------
DROP TABLE IF EXISTS `junjunjun_user_role_item`;
CREATE TABLE `junjunjun_user_role_item`  (`id` bigint NOT NULL AUTO_INCREMENT,`deleted` int NOT NULL DEFAULT 0,`user_id` bigint NOT NULL,`role_id` bigint NOT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `user_roel`(`user_id` ASC, `role_id` ASC) USING BTREE,INDEX `role_id`(`role_id` ASC) USING BTREE,CONSTRAINT `junjunjun_user_role_item_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `junjunjun_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `junjunjun_user_role_item_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `junjunjun_role` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
http://www.xdnf.cn/news/15281.html

相关文章:

  • 上位机知识篇---安装包架构
  • java集合类
  • 输入流挂起
  • 人脸图像生成(DCGAN)
  • Java线程进阶-并发编程
  • python的病例管理系统
  • halcon 求一个tuple的极值点
  • 性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
  • 深入剖析Spring Bean生命周期:从诞生到消亡的全过程
  • JavaSE——Object
  • Linux驱动基本概念(内核态、用户态、模块、加载、卸载、设备注册、字符设备)
  • DSSA(Domain-Specific Software Architecture)特定领域架构
  • 台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)
  • Leaflet面试题及答案(21-40)
  • 2025年体育科学与健康大数据国际会议(ICSSHBD 2025)
  • OpenAI 将推 AI Agent 浏览器:挑战 Chrome,重塑上网方式
  • 异构Active DataGuard对于convert参数的错误理解
  • SpringCloud之Feign
  • 从「小公司人事」到「HRBP」:选对工具,比转岗更能解决成长焦虑
  • 十二、k8s工程化管理Helm
  • Linux自动化构建工具(一)
  • pdf拆分
  • 《打破预设的编码逻辑:Ruby元编程的动态方法艺术》
  • LVS负载均衡-DR模式配置
  • 进制转换原理与实现详解
  • 【unity编辑器开发与拓展EditorGUILayoyt和GUILayoyt】
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (三)RISC-V架构深度解剖(下)
  • 【八股消消乐】浅尝Kafka性能优化
  • 【面板数据】省级泰尔指数及城乡收入差距测算(1990-2024年)
  • Vue集成MarkDown