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

Spring Boot 项目创建

创建一个新项目:

打开 Spring Initializr 网址:https://start.spring.io/ ,然后创建一个新项目:

springboot3.3.5_jdk17:

  • Project(Maven)
  • 编程语言(Java 17)
  • Spring Boot 版本(3.3.*)
  • Packaging(Jar)

注意:包名不要使用纯数字,尽量规范,否则会出现奇怪的问题

添加以下依赖:

  • Spring Web
  • MyBatis Framework
  • MySQL Driver
  • Lombok
  • Spring Boot DevTools

模板1下载地址:demo_springboot3.3.5_jdk17.zip

解压后,拷贝到本地git仓库目录中。

在这里插入图片描述

导入项目并配置 Maven 仓库镜像

将下载的项目解压后,使用喜欢的 IDE(如 IntelliJ IDEA)打开。

pom.xml 文件中,添加 Maven 仓库的镜像配置,以加快依赖下载速度:

<project>
    <!-- 其他内容 -->

    <repositories>
        <repository>
            <id>aliyunmaven</id>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
        <repository>
            <id>huaweicloud</id>
            <name>huawei cloud maven</name>
            <url>https://repo.huaweicloud.com/repository/maven/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>aliyunmaven</id>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </pluginRepository>
    </pluginRepositories>

    <!-- 其他内容 -->
</project>

配置 application.yml 文件

src/main/resources/ 目录下,创建一个 application.yml 文件,配置服务器端口和数据源:

server:
  port: 28080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.rbacsystem

注意:

  • your_usernameyour_password 替换为您实际的 MySQL 数据库用户名和密码。
  • type-aliases-package 用于指定 MyBatis 的别名包路径,以简化映射配置。
server:
  port: 28080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: XXXXXXXXXXX
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo
修改说明

1. server 配置

server:
  port: 28080
  • port 指定 Spring Boot 应用的运行端口号。
    • 当前配置为 28080,表示应用启动后可以通过 http://localhost:28080 访问。
    • 如果未配置,默认端口为 8080

2. spring.datasource 配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: XXXXXXXX
    driver-class-name: com.mysql.cj.jdbc.Driver
  • url 数据库连接的 URL。
    • jdbc:mysql://localhost:3306/rbac_system:连接到本地 MySQL 数据库的 rbac_system 数据库。
      • localhost 表示数据库运行在本地。
      • 3306 是 MySQL 的默认端口。
      • rbac_system 是要连接的数据库名称。(我的就是rbac_system,因为之前是根据老师代码数据库名字配置的CREATE DATABASE IF NOT EXISTS rbac_system;)
    • 参数:
      • useUnicode=true:启用 Unicode 支持,确保支持中文或其他语言字符。
      • characterEncoding=utf8:指定字符编码为 UTF-8
      • serverTimezone=Asia/Shanghai:设置服务器的时区为上海,防止时区差异导致时间错误。
  • username 数据库用户名。
    • 需要替换为您实际数据库的用户名,例如 root
  • password 数据库密码。
    • 需要替换为实际密码。
  • driver-class-name JDBC 驱动类。
    • 当前配置为 com.mysql.cj.jdbc.Driver,这是 MySQL 8.x 的驱动类名称。

3. mybatis 配置

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo
  • mapper-locations
    • 指定 MyBatis 映射文件(*.xml)的位置。
    • classpath:mapper/*.xml:表示映射文件放在项目的 resources/mapper 文件夹中,文件后缀为 .xml
    • MyBatis 映射文件用于定义 SQL 语句和数据库表映射关系。
  • type-aliases-package
    • 指定 MyBatis 中实体类的包路径。
    • com.example.demo:表示实体类位于该包下。(这个是我的包的名字)
    • MyBatis 会自动将该包下的类简化为别名,例如类 User 可直接使用别名 user

总结

这段配置文件实现了以下功能:

  1. 配置了 Spring Boot 应用的运行端口为 28080
  2. 配置了连接本地 MySQL 数据库的相关信息(URL、用户名、密码、驱动)。
  3. 指定了 MyBatis 的映射文件路径和实体类所在的包。

下一步需要的操作

  1. 检查 MySQL 数据库:
    • 确保 MySQL 数据库正在运行,且端口 3306 可用。
    • 确认已创建名为 rbac_system 的数据库。
    • 替换 your_usernameyour_password 为实际的数据库用户名和密码。
  1. 准备 MyBatis 映射文件:
    • resources/mapper 文件夹中放置 MyBatis 的 .xml 映射文件。
    • 确保 .xml 文件中的 SQL 与数据库表结构一致。
  1. 准备实体类:
    • com.example.rbacsystem 包中创建与数据库表对应的实体类。

配置完成后,启动 Spring Boot 项目,即可连接到 MySQL 数据库并使用 MyBatis 执行数据库操作。

记得把pom配置,如下,之后就会由橙色变成蓝色:

在这里插入图片描述

创建 User 实体类

package com.example.demo;

import lombok.Data;

@Data
public class User {
    private Integer userId;
    private String username;
    private String password;
    private String email;
    private String status;
}

创建 Mapper 接口

com.example.demo.mapper 包下,创建 Mapper 接口。

UserMapper.java
package com.example.demo;

import com.example.demo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface UserMapper {
    User getUserById(@Param("userId") Integer userId);

    User findByUsername(@Param("username") String username);

    int insertUser(User user);

    // 其他需要的方法
}

src/main/resources/mapper/ 目录下,创建对应的 XML 映射文件。

UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.rbacsystem.mapper.UserMapper">

    <resultMap id="UserResultMap" type="com.example.rbacsystem.model.User">
        <id property="userId" column="user_id"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="email" column="email"/>
        <result property="status" column="status"/>
    </resultMap>

    <select id="getUserById" resultMap="UserResultMap">
        SELECT * FROM users WHERE user_id = #{userId}
    </select>

    <select id="findByUsername" resultMap="UserResultMap">
        SELECT * FROM users WHERE username = #{username}
    </select>

    <insert id="insertUser" parameterType="com.example.rbacsystem.model.User">
        INSERT INTO users (username, password, email, status)
        VALUES (#{username}, #{password}, #{email}, #{status})
    </insert>

    <!-- 其他 SQL 映射 -->
</mapper>

注意:

  • namespace 应与 Mapper 接口的全限定名一致。
  • 使用 resultMap 来映射数据库列名与实体类字段名。

创建 Service 层

com.example.rbacsystem.service 包下,创建服务类,处理业务逻辑。

UserService.java

package com.example.rbacsystem.service;

import com.example.rbacsystem.mapper.UserMapper;
import com.example.rbacsystem.model.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class UserService {

    private final UserMapper userMapper;

    public User getUserById(Integer userId) {
        return userMapper.getUserById(userId);
    }

    public User findByUsername(String username) {
        return userMapper.findByUsername(username);
    }

    public int createUser(User user) {
        return userMapper.insertUser(user);
    }

    // 其他业务逻辑方法
}

创建 Controller 层

com.example.rbacsystem.controller 包下,创建控制器类,处理 HTTP 请求。

UserController.java

package com.example.rbacsystem.controller;

import com.example.rbacsystem.model.User;
import com.example.rbacsystem.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

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

    private final UserService userService;

    @GetMapping("/{userId}")
    public User getUserById(@PathVariable Integer userId) {
        return userService.getUserById(userId);
    }

    @PostMapping("/")
    public String createUser(@RequestBody User user) {
        int result = userService.createUser(user);
        return result > 0 ? "User created successfully" : "Failed to create user";
    }

    // 其他请求处理方法
}

注意:

  • 使用 @RestController 注解,表示这是一个控制器,并且所有方法都返回 JSON 格式的数据。
  • 请求路径前缀为 /api/users,与前端的 API 请求路径保持一致。

测试接口(暂时不需要做,后端根目录并没有设置,所以测试后应该是如下页面)

在这里插入图片描述

使用 Postman 或浏览器,访问以下 URL,测试后端接口是否正常工作。

  • 获取用户信息:
GET http://localhost:28080/api/users/1

响应示例:

{
  "userId": 1,
  "username": "admin",
  "password": "admin123",
  "email": "admin@example.com",
  "status": "enabled"
}
  • 创建新用户:
POST http://localhost:28080/api/users/

请求体(JSON):

{
  "username": "newuser",
  "password": "newpassword",
  "email": "newuser@example.com",
  "status": "enabled"
}

响应示例:

User created successfully

注意:

  • 确保数据库中存在对应的数据。
  • 在生产环境中,不要将密码以明文形式返回,应进行加密和安全处理。

http://www.kler.cn/a/444728.html

相关文章:

  • 介绍 Html 和 Html 5 的关系与区别
  • springboot443旅游管理系统(论文+源码)_kaic
  • 王佩丰24节Excel学习笔记——第十二讲:match + index
  • vscode不同的项目使用不同的环境变量或编译环境
  • POD 存储、PV、PVC
  • Unity 上好用的插件
  • 《Django 5 By Example》阅读笔记:p561-p613
  • Linux crontab 使用教程
  • 幂运算转換
  • Java基本概念6-JVM2
  • C语言中的变量自加操作:前自加与后自加的深入解析
  • AtomGit 开源生态应用开发赛报名开始啦
  • 【优选算法---前缀和】和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和
  • 武汉市电子信息与通信工程职称公示了
  • Guava 库中的 `Multimap` 是一个允许一个键对应多个值的集合 Guava `Multimap` 的基本代码示例:
  • CSSmodule的作用是什么
  • 《 QT 5.14.1 类库模块列表详述》
  • 解决 Amazon S3 管理控制台中 5GB 大小限制的问题
  • 【Rust自学】4.2. 所有权规则、内存与分配
  • 1688商品爬取:商品信息与价格接口获取指南
  • 【设计模式】空接口
  • Web3 时代:技术变革与未来展望
  • Three.js材质纹理扩散过渡
  • 力扣--LCR 53.最大数组和
  • 多模态抽取图片信息的 Prompt
  • finereport新的数据工厂插件使用场景 二 参数混合计算场景