前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >猫头虎分享 AIGC 时代:新项目如何快速基于 IDEA 和 ChatGPT 搞定 Spring Boot 3 + Vue 3 全栈开发环境搭建

猫头虎分享 AIGC 时代:新项目如何快速基于 IDEA 和 ChatGPT 搞定 Spring Boot 3 + Vue 3 全栈开发环境搭建

作者头像
猫头虎
发布2024-11-30 09:15:14
发布2024-11-30 09:15:14
14000
代码可运行
举报
运行总次数:0
代码可运行

🐯 猫头虎分享 AIGC 时代:新项目如何快速基于 IDEA 和 ChatGPT 搞定 Spring Boot 3 + Vue 3 全栈开发环境搭建 🚀

前言 ✨

AIGC(生成式 AI) 时代,开发者不仅需要快速完成项目的原型开发,还要高效搭建一个灵活、可扩展的全栈开发环境。今天我们将带你一步步搭建一个 前后端分离 的全栈项目,后端使用 Spring Boot 3,前端使用 Vue 3。通过结合 IntelliJ IDEAChatGPT,你将能轻松完成一个标准的全栈开发环境,从而实现快速上线和开发。即便是初学者,跟随我们的教程,也能成功创建并运行一个完整的 Spring Boot + Vue 3 项目!让我们开始吧!

正文


🛠️ 一、准备工作
  1. 开发工具
代码语言:txt
复制
- [IntelliJ IDEA](https://www.jetbrains.com/idea/)(建议使用 Ultimate 版,功能更强大,支持更多的后端框架和前端功能)
- [Node.js](https://nodejs.org/)(推荐 LTS 版本)
- [JDK 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)(Spring Boot 3.x 推荐使用 JDK 17 以上版本)
- [Maven](https://maven.apache.org/) 或 Gradle(Spring Boot 项目的构建工具)
代码语言:txt
复制
- 操作系统:Windows/Mac/Linux
- 最低硬件配置:8GB 内存,500GB 硬盘(推荐 SSD)
代码语言:txt
复制
- 配置国内镜像(如 Maven 阿里云镜像、NPM 淘宝镜像)以提高依赖下载速度。

🌟 二、详细创建 Spring Boot 3 后端项目教程
1. 使用 IDEA 快速创建 Spring Boot 项目

首先打开 IntelliJ IDEA,并创建一个新的 Spring Boot 项目。

  1. 步骤一:打开 IDEA,选择 File > New > Project
  2. 步骤二:在左侧菜单选择 Spring Boot,配置如下选项之后点击 Next
    • Project SDK:选择 JDK 17
    • Project Metadata:填写基本的项目信息。
      • Group:com.example
      • Artifact:spring-boot-vue3-demo
      • Name:spring-boot-vue3-demo
      • Type:Maven(也可以使用 Gradle)
      • Packaging:Jar
      • Java:17
  1. 步骤三:选择需要的依赖项:
代码语言:txt
复制
- **Spring Web**:用于创建 RESTful API。
- **Spring Data JPA**:用于与数据库交互。
- **Spring Security**:用于实现身份认证和权限控制。
- **MySQL Driver**:连接 MySQL 数据库。

然后点击 Next,选择项目保存路径,点击 Finish 完成创建。

联网等待jar依赖下载完成即可开始编码~

2. 配置 application.yml 文件

接下来,我们需要配置 Spring Boot 项目的数据库连接信息。进入项目目录下的 src/main/resources/application.yml 文件,添加以下配置:

代码语言:javascript
代码运行次数:0
复制
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password: root
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
  sql:
    init:
      mode: always
  • 数据库配置:确保你的 MySQL 数据库已启动并创建了 mydb 数据库。
  • JPA 配置ddl-auto: update 意味着 Spring Boot 会自动更新数据库表结构。
3. 创建基础的 RESTful API

接下来,我们会创建一个简单的 RESTful API 来管理用户。首先,创建一个 UserController 类。

src/main/java/com/example/springbootvue3demo/controller 目录下创建 UserController.java 文件:

代码语言:javascript
代码运行次数:0
复制
package com.example.springbootvue3demo.controller;

import com.example.springbootvue3demo.model.User;
import com.example.springbootvue3demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public String registerUser(@RequestBody User user) {
        userService.save(user);
        return "User registered successfully!";
    }

    @PostMapping("/login")
    public String loginUser(@RequestBody User user) {
        return userService.login(user);
    }

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findById(id);
    }
}

接着,创建 User 实体类(User.java):

代码语言:javascript
代码运行次数:0
复制
package com.example.springbootvue3demo.model;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    private Long id;
    private String username;
    private String password;

    // Getters and setters
}

最后,创建 UserService 服务类,负责处理用户数据:

代码语言:javascript
代码运行次数:0
复制
package com.example.springbootvue3demo.service;

import com.example.springbootvue3demo.model.User;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    // Simulating database operations for demo purposes
    public void save(User user) {
        // Logic to save user to the database
    }

    public String login(User user) {
        // Simulate login logic
        return "Login successful for " + user.getUsername();
    }

    public User findById(Long id) {
        // Simulate fetching user from the database
        return new User();
    }
}

🌈 三、创建 Vue 3 前端项目
1. 创建 Vue 3 项目

通过命令行创建一个新的 Vue 3 项目:

代码语言:javascript
代码运行次数:0
复制
npm init vue@latest
cd vue3-project
npm install

选择 Vue 3,并添加 Vue Router 和 Pinia 作为状态管理工具。

2. 配置项目结构

进入 src 文件夹,创建以下目录结构:

  • components:存放 Vue 组件。
  • views:存放页面视图。
  • store:存放状态管理代码。
  • router:存放路由配置。
3. 安装所需依赖

在项目根目录下运行以下命令安装所需的依赖:

代码语言:javascript
代码运行次数:0
复制
npm install axios vue-router@4 pinia
4. 配置路由与状态管理
  • src/router/index.js 文件中:
代码语言:javascript
代码运行次数:0
复制
import { createRouter, createWebHistory } from 'vue-router';

const routes = [
  { path: '/', component: () => import('../views/Home.vue') },
  { path: '/login', component: () => import('../views/Login.vue') },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;
  • src/store/index.js 文件中:
代码语言:javascript
代码运行次数:0
复制
import { defineStore } from 'pinia';

export const useUserStore = defineStore('user', {
  state: () => ({
    user: null,
  }),
  actions: {
    setUser(user) {
      this.user = user;
    },
  },
});
5. 使用 Vue 3 语法编写登录组件

src/views/Login.vue 中,使用 Vue 3 语法创建登录表单:

代码语言:javascript
代码运行次数:0
复制
<template>
  <form @submit.prevent="login">
    <input v-model="username" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <button type="submit">登录</button>
  </form>
</template>

<script setup>
import { ref } from 'vue';
import axios from 'axios';

const username = ref('');
const password = ref('');

const login = async () => {
  const response = await axios.post('http://localhost:8080/api/users/login', {
    username: username.value,
    password: password.value,
  });
  console.log(response.data);
};
</script>
6. 启动 Vue 项目

在项目根目录下,运行以下命令启动 Vue 前端:

代码语言:javascript
代码运行次数:0
复制
npm run dev

🔗 四、后端与前端联调

实现前后端分离的核心是确保后端 API 能够与前端正常通信,以下是详细的联调过程。


1. 配置后端的 CORS 跨域支持

由于前端和后端运行在不同的端口(如前端运行在 http://localhost:3000,后端运行在 http://localhost:8080),浏览器会限制跨域请求。因此需要在后端配置 CORS(跨域资源共享)。

在后端创建一个配置类 WebMvcConfig,启用跨域支持:

代码语言:javascript
代码运行次数:0
复制
package com.example.springbootvue3demo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 允许所有路径
                .allowedOrigins("http://localhost:3000") // 允许的前端地址
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的请求方法
                .allowedHeaders("*") // 允许的请求头
                .allowCredentials(true); // 允许携带认证信息(如 Cookies)
    }
}

提示allowedOrigins 的地址可以换成部署后前端项目的实际地址。


2. 启动后端服务

执行以下命令启动 Spring Boot 后端服务:

代码语言:javascript
代码运行次数:0
复制
mvn spring-boot:run
  • 默认情况下,后端会在 http://localhost:8080 启动。
  • 可通过浏览器或 Postman 测试后端 API,例如访问 http://localhost:8080/api/users,确保接口正常运行。

3. 配置前端的 Axios 全局请求设置

在前端项目中,使用 Axios 发送请求时需要设置后端的基础 URL 和跨域配置。以下是具体步骤:

安装 Axios

确保 Axios 已安装:

代码语言:javascript
代码运行次数:0
复制
npm install axios

配置 Axios 基础设置

src/utils/axios.js 文件中配置 Axios 实例:

代码语言:javascript
代码运行次数:0
复制
import axios from 'axios';

const apiClient = axios.create({
    baseURL: 'http://localhost:8080/api', // 后端 API 的基础路径
    timeout: 5000, // 请求超时时间
    headers: {
        'Content-Type': 'application/json',
    },
});

export default apiClient;

在 Vue 项目中使用 Axios

修改登录组件中的代码,确保与后端 API 通信正常:

代码语言:javascript
代码运行次数:0
复制
<template>
    <form @submit.prevent="login">
        <input v-model="username" placeholder="用户名" />
        <input v-model="password" type="password" placeholder="密码" />
        <button type="submit">登录</button>
    </form>
</template>

<script setup>
import { ref } from 'vue';
import apiClient from '../utils/axios';

const username = ref('');
const password = ref('');

const login = async () => {
    try {
        const response = await apiClient.post('/users/login', {
            username: username.value,
            password: password.value,
        });
        console.log(response.data);
        alert('登录成功');
    } catch (error) {
        console.error(error);
        alert('登录失败');
    }
};
</script>

4. 启动前端服务

在前端项目的根目录下,执行以下命令启动 Vue 前端:

代码语言:javascript
代码运行次数:0
复制
npm run dev

前端默认运行在 http://localhost:3000,打开浏览器访问此地址。


5. 联调测试
  1. 测试登录功能
代码语言:txt
复制
- 在浏览器中打开前端页面,填写用户名和密码,点击“登录”按钮。
- 检查后端日志或前端控制台,确认请求是否成功,返回的数据是否正确。
代码语言:txt
复制
- **CORS 错误**:检查后端 CORS 配置是否正确,特别是 `allowedOrigins` 的值。
- **Axios 网络请求错误**:确保 Axios 的 `baseURL` 与后端实际地址一致。

6. 最佳实践:前后端 API 版本管理

在联调完成后,为了避免后续的接口版本升级对前端造成影响,建议在 API 路径中加入版本号。例如:

后端 API 路径改为:http://localhost:8080/api/v1/users

在前端 Axios 配置中同步更新基础路径:

代码语言:javascript
代码运行次数:0
复制
const apiClient = axios.create({
    baseURL: 'http://localhost:8080/api/v1', // 添加版本号
    timeout: 5000,
    headers: {
        'Content-Type': 'application/json',
    },
});

这样可以在后端版本更新时,新版本的接口路径可以通过 /api/v2 等路径区分,而不影响旧版本的前端项目。


7. 提升联调效率的技巧
  • 使用 PostmanInsomnia 测试 API,确保接口逻辑正确后再与前端联调。
  • 使用浏览器的 Network 面板检查请求和响应的详细信息,如状态码、响应体等。
  • 前端开发过程中,可以启用 Mock 数据 快速搭建原型,后端完成后再进行联调。

通过以上步骤,你可以成功实现 Spring Boot 3 后端Vue 3 前端 的无缝联调。🎉 现在,你的全栈项目已经可以正常运行并完成基本的功能开发了!


🔥 五、借助 ChatGPT 提升开发效率

在搭建过程中,ChatGPT 是你的得力助手。以下是 ChatGPT 在全栈项目开发中能提供的帮助:

1. 快速生成代码模板

通过提示,ChatGPT 可以快速生成符合需求的代码片段。例如,你可以让 ChatGPT 帮你生成用户注册接口或 Vue 的表单组件。

示例提示

“生成一个 Spring Boot 的登录 API,包括接收用户名和密码,并返回一个 JSON 响应。”

生成代码如下:

代码语言:javascript
代码运行次数:0
复制
 package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/api/auth")
public class LoginController {

    @PostMapping("/login")
    public Map<String, Object> login(@RequestParam String username, @RequestParam String password) {
        Map<String, Object> response = new HashMap<>();

        // 模拟用户验证逻辑
        if ("admin".equals(username) && "password123".equals(password)) {
            response.put("status", "success");
            response.put("message", "登录成功!");
            response.put("token", "fake-jwt-token"); // 生成的 token 示例
        } else {
            response.put("status", "error");
            response.put("message", "用户名或密码错误!");
        }

        return response;
    }
}
2. 调试与问题解决

如果你在运行中遇到错误,比如 CORS 问题、NullPointerException 等,ChatGPT 可以帮助你快速排查并提供修复方法。

3. 学习新技术

对于不熟悉的框架或技术栈,ChatGPT 可以快速为你总结概念并提供实际代码示例。比如,它可以告诉你 Vue 3 和 Vue 2 的主要差异,并帮助你升级代码。


🚀 六、开发环境优化建议

为进一步提高开发效率和运行性能,可以采取以下措施:

1. 本地调试工具
  • 配置 PostmanInsomnia 测试后端 API。
  • 使用 Vue DevTools 调试前端 Vue 组件的状态。
2. 部署与环境管理
  • 使用 Docker 将前后端环境容器化,避免本地环境配置差异。
  • 编写 Dockerfiledocker-compose.yml,快速搭建生产环境。

示例:后端 Dockerfile

代码语言:javascript
代码运行次数:0
复制
FROM openjdk:17-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/spring-boot-vue3-demo-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

示例:前端 Dockerfile

代码语言:javascript
代码运行次数:0
复制
FROM node:16
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "run", "dev"]

📊 七、扩展功能与优化方向

项目成功运行后,你可以继续扩展以下功能:

1. 后端扩展
  • 认证与授权:引入 JWT(JSON Web Token)实现用户认证与角色权限控制。
  • 日志记录:通过 LogbackELK(Elasticsearch + Logstash + Kibana)实现日志监控。
  • 单元测试:使用 JUnit 5Mockito 编写单元测试和集成测试,确保代码质量。
2. 前端优化
  • UI 框架:引入 Element PlusAnt Design Vue,快速构建美观的界面。
  • 性能优化:使用懒加载(Lazy Loading)、代码分割(Code Splitting)优化加载速度。
  • 全局状态管理:通过 Pinia 集成复杂状态。
3. 部署到云端
  • 使用 Nginx 部署前端页面,并反向代理后端接口。
  • 将项目部署到云平台,如 阿里云 ECSAWS EC2,实现在线访问。

📅 八、常见问题与解决方案
问题 1:启动后端时出现数据库连接失败

解决方案

确保 MySQL 服务已启动,并检查 application.yml 中的数据库配置。

测试数据库连接是否正常:

代码语言:javascript
代码运行次数:0
复制
mysql -u root -p -h localhost -P 3306
问题 2:前端无法访问后端 API

解决方案

  • 检查 CORS 配置是否正确。
  • 确保后端服务运行在正确的端口(如 8080)。
  • 使用浏览器开发者工具检查网络请求的状态和响应。
问题 3:npm 安装依赖过慢

解决方案

  • 配置淘宝镜像:
代码语言:javascript
代码运行次数:0
复制
npm config set registry https://registry.npm.taobao.org

或直接使用 cnpm:

代码语言:javascript
代码运行次数:0
复制
npm install -g cnpm --registry=https://registry.npmmirror.com

更多信息参考:https://blog.csdn.net/qq_44866828/article/details/144077251

🎯 结语

AIGC 时代,开发者需要快速适应技术更新,以更高效的方式完成复杂项目。通过本文的详细步骤,相信你已经学会如何快速搭建一个 Spring Boot 3 + Vue 3 的全栈开发环境,并将前后端分离架构的优势应用到实际项目中。

猫头虎技术团队 鼓励你不断探索与实践,让技术为你的项目增值!

💡 想了解更多开发实战经验?立即关注公众号「猫头虎技术团队」,与我们一起玩转技术前沿! 🚀

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🐯 猫头虎分享 AIGC 时代:新项目如何快速基于 IDEA 和 ChatGPT 搞定 Spring Boot 3 + Vue 3 全栈开发环境搭建 🚀
    • 前言 ✨
  • 正文
    • 🛠️ 一、准备工作
    • 🌟 二、详细创建 Spring Boot 3 后端项目教程
    • 🌈 三、创建 Vue 3 前端项目
    • 🔗 四、后端与前端联调
    • 🔥 五、借助 ChatGPT 提升开发效率
    • 🚀 六、开发环境优化建议
    • 📊 七、扩展功能与优化方向
    • 📅 八、常见问题与解决方案
    • 更多信息参考:https://blog.csdn.net/qq_44866828/article/details/144077251
      • 🎯 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档