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

服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】

当然,你可以先按照IDEA搭建SSM框架【配置类、新手向】完成基础框架的搭建

步骤 1:设计并实现服务器端的用户数据库

在这个示例中,我们将使用MySQL数据库。首先,你需要安装MySQL并创建一个数据库以存储用户信息。以下是一些基本步骤:

  1. 安装MySQL,并确保MySQL服务器正在运行。
  2. 使用MySQL客户端工具登录到MySQL服务器。
  3. 创建一个新的数据库,例如 “android”。
CREATE DATABASE android_db;
  1. 创建一个用户表,用于存储用户信息,包括用户名和密码。
USE android_db;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL
);

在这里插入图片描述

步骤 2:使用Spring Boot搭建Web服务器

1. 创建一个Spring Boot项目

你可以使用Spring Initializer(https://start.spring.io/)来生成项目模板,包含Web和MySQL依赖。

2. 配置数据库连接信息

application.propertiesapplication.yml 文件中添加以下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/userdb
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///数据库名称?useSSL=false&useUnicode=true&characterEncoding=utf8username: 数据库用户名password: 数据库密码
mybatis:mapper-locations: classpath:mappers/*.xmltype-aliases-package: com.leo.springbootbackend.pojo.doconfiguration:map-underscore-to-camel-case: true

确保替换 your_usernameyour_password 为你的数据库用户名和密码。

3. 导入lombook

在项目中引入 Lombok 依赖并启用 Lombok 插件,以便编译器能够正确处理 Lombok 注解。如果你使用的是 Maven,你可以在pom.xml添加以下依赖:

        <!--    lombook   --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version> <!-- 版本号可能会有所不同 --><scope>provided</scope></dependency>

在这里插入图片描述

如果你使用的是 Gradle,你可以在 build.gradle 文件中添加以下依赖:

implementationOnly 'org.projectlombok:lombok:1.18.22' // 版本号可能会有所不同
annotationProcessor 'org.projectlombok:lombok:1.18.22' // 版本号可能会有所不同

确保配置正确,以使 Lombok 能够在你的项目中正常工作。

4. 创建一个实体类 User 用于表示用户信息。

package com.leo.springboot.pojo.entity;import lombok.Data;
import lombok.NonNull;@Data
public class User {@NonNull private Long id;@NonNull private String username;@NonNull private String password;
}

5. 创建一个用户仓库接口 UserDAO

package com.leo.springboot.dao;import com.leo.springboot.pojo.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface UserDao {@Select("SELECT * FROM users WHERE username = #{username}")User findByUsername(String username);@Insert("INSERT INTO users (username, password) VALUES (#{username}, #{password})")Integer save(User user);
}

方法一:使用注解:

package com.leo.springboot.dao;import com.leo.springboot.pojo.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface UserDao {@Select("SELECT * FROM user WHERE username = #{username}")User findByUsername(String username);@Insert("INSERT INTO user (username, password) VALUES (#{username}, #{password})")User save(User user);
}

上面的代码中,通过@Select注解在findByUsername方法上定义了查询操作的SQL语句。

方法二:使用XML映射文件:

如果你更愿意将SQL语句定义在XML映射文件中,你可以在XML文件中定义findByUsername方法的SQL语句,就像之前所示。

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.leo.springboot.dao.UserDao"><select id="findByUsername" parameterType="java.lang.String" resultType="com.leo.springboot.pojo.entity.User">SELECT * FROM user WHERE username = #{username}</select><insert id="save" parameterType="java.lang.Integer">INSERT INTO user (username, password) VALUES (#{username}, #{password})</insert>
</mapper>

然后,再次确保你的application.propertiesapplication.yml中指定了映射文件的位置:

mybatis.mapper-locations=classpath:mapper/*.xml

6. 创建用户服务(Service)

1.创建一个UserService接口和实现类UserServiceImpl

UserService.java:

package com.leo.springboot.service;import com.leo.springboot.pojo.entity.User;
import org.springframework.stereotype.Service;public interface UserService {User getByUsername(String username);Integer save(User user);
}

UserServiceImpl.java:

package com.leo.springboot.service.impl;import com.leo.springboot.dao.UserDao;
import com.leo.springboot.pojo.entity.User;
import com.leo.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userRepository;@Overridepublic User getByUsername(String username) {return userRepository.findByUsername(username);}@Overridepublic Integer save(User user) {return userRepository.save(user);}
}

7. 创建用户控制器(Controller)

package com.leo.springboot.controller;import com.leo.springboot.pojo.entity.User;
import com.leo.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@PostMapping("/login")public Boolean loginUser(@RequestBody User user) {String username = user.getUsername();String password = user.getPassword();User storedUser = userService.getByUsername(username);if (storedUser != null && storedUser.getPassword().equals(password)) {return true;}return false; // Return null or an error message for failed login}@PostMapping("/register")public Integer registerUser(@RequestBody User user) {// You can add validation and error handling herereturn userService.save(user);}
}

使用@RestController注解标识这是一个REST控制器。@RequestMapping注解定义了控制器的基本路径。

8. 运行应用

  1. 使用IDE运行Spring Boot应用程序。

  2. 应用将启动并监听端口8080(可以在application.propertiesapplication.yml文件中进行配置)。

并在数据库中插入数据
在这里插入图片描述

步骤8:测试API

你可以使用工具如Postman或curl来测试你的API。以下是一些示例API调用:

  • 注册用户:POST请求 http://localhost:8080/user/register,并在请求体中传入JSON数据,例如:
{"username": "abc","password": "123"
}

在这里插入图片描述

  • 用户登录:POST请求 http://localhost:8080/users/login,并在请求体中传入JSON数据,例如:
{"username": "leo","password": "123"
}

在这里插入图片描述

相关文章:

服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】

当然&#xff0c;你可以先按照IDEA搭建SSM框架【配置类、新手向】完成基础框架的搭建 步骤 1&#xff1a;设计并实现服务器端的用户数据库 在这个示例中&#xff0c;我们将使用MySQL数据库。首先&#xff0c;你需要安装MySQL并创建一个数据库以存储用户信息。以下是一些基本步…...

家用小型洗衣机哪款性价比高?公认好用四款内衣洗衣机推荐

小型的内衣洗衣机由于体积小巧&#xff0c;而且实用&#xff0c;非常适合没有太多空闲时间的上班族以及小型住户的使用。想要挑选到一款能够满足每日清洗需要&#xff0c;同时拥有便携与高效率的小型内衣洗衣机&#xff0c;也许会让你选择得有些烦恼。我们为大家挑选了一些性价…...

Sui zkSend,创建链接可直接发送SUI,快来体验吧

基于zkLogin和Sui的本机密码学构建&#xff0c;zkSend允许用户创建包含特定数量SUI的链接。该链接可以通过任何消息客户端发送&#xff0c;例如电子邮件和直接消息&#xff0c;甚至可以在媒体上转换成QR码。 使用zkSend发送SUI比复制和粘贴钱包地址&#xff0c;然后授权token转…...

SQL面试

#(1)请写出要查询员工J开头的名字其工号(EMPNO)及部门名称(DEPTNA)的 SQL语句SELECT e.emp,e.name,d.deptna FROM emp e left join dept d on d.deptno e.deptno where e.name like J%#(2)请写出要查询 Kevin 所在部门的部门代号(DEPTNO)及部门名称(DEPTNA)的 SQL 语句SELECT e…...

Elasticsearch(一)---介绍

简介 Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中&#xff0c;能够达到近实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。基于RESTful接口。 官网地址&#xff1a;Elasticsearch 平台 — 大规模查找…...

Vscode LinuxC++环境配置

C环境配置 文章目录 C环境配置一、Visual Studio Code相关信息二、Python开发环境配置三、C 开发环境配置四、第一个C程序五、附录&#xff1a;vs code 中变量解释 一、Visual Studio Code相关信息 Visual Studio Code 下载地址&#xff1a;https://code.visualstudio.com/dow…...

【tensorboard打开失败】No dashboards are active for the current data set.

这里我再跟视频学的时候&#xff0c;找了很多的指令&#xff0c;说是对应版本不一样&#xff0c;但是发现用了很多指令都可以弹出来跳转的url&#xff0c;那应该就不是输入指令的问题 直到我想把logs里面的文件删掉重新跑的时候&#xff0c;我突然注意到这里有中文字符&#xf…...

客服管理者如何调动客服人员的积极性?

客户是企业的财富&#xff0c;良好的客户服务体验可以有效地促进企业的销售和声誉&#xff0c;因此&#xff0c;客服工作显得尤为重要。而客服人员的积极性直接影响了整个客服部门的质量和效率。如何调动客服人员的积极性&#xff0c;成为了每个客服管理者都需要面对的难题。本…...

Jenkins自动化部署简单配置

下载安装jenkins 安装Jenkins步骤 点击Next的时候会有jdk版本跟Jenkins版本不符合的情况 1. 看下任务管理器内Jenkins服务是否启动&#xff0c;在浏览器里面输入localhost:2023&#xff08;端口号是安装时输入的&#xff09; 2. 根据路径找到放置密码的文件&#xff08;C…...

Linux————内置命令大全

&#xff08;一&#xff09;内置命令 Shell 内置命令&#xff0c;就是由 Bash Shell 自身提供的命令&#xff0c;而不是文件系统中的可执行脚本文件。内置命令的执行速度通常优于外部命令&#xff0c;因为执行外部命令不仅会导致磁盘I/O操作&#xff0c;而且还需要为其fork一个…...

从用户角度出发,如何优化大数据可视化体验|北京蓝蓝UI设计公司

作者&#xff1a;蓝蓝设计-鹤鹤 大数据已经成为人们探索世界的新工具。但是&#xff0c;对于普通用户而言&#xff0c;大数据往往比较抽象和难以理解&#xff0c;因此&#xff0c;大数据可视化作为一种非常有效的工具工具被广泛应用。然而&#xff0c;在实际应用中&#xff0c…...

【vue】封装树形下拉框组件 el-popover+el-tree+el-select

父组件使用 <template><div>{{ array }} 更多属性详见wgyTreeSelect组件<wgyTreeSelectv-model"array":list"list":multiple"true":disabled-ids"[111,113,2]"/></div> </template><script> /*…...

docker安装Kafka,SpringBoot整合Kafka

#拉取镜像 docker pull wurstmeister/zookeeper #运行容器 docker run --restartalways --name zookeeper -p 2181:2181 \ -v /etc/localtime:/etc/localtime -d wurstmeister/zookeeper#拉取镜像 docker pull wurstmeister/kafka#运行容器 docker run --restartalways --name …...

MySQL - InnoDB 的事务支持、锁机制

InnoDB 存储引擎实现了强大的事务支持和锁机制&#xff1a; 事务原理&#xff1a; ACID 属性&#xff1a;InnoDB 支持 ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;属性&#xff0c;确保数据的一致性和可靠性。事务是一组 SQL 操作&#xff0c;要么全部执行&…...

Android Studio的笔记--Module新建和使用

Module新建和使用 新建module使用module android studio 中module的建立和使用。比如修改工程为module的步骤&#xff0c;引用module的步骤。 新建module 1、新建android工程&#xff0c;New Project.包名为com.lxh.serialport 2、修改工程为module。 2.1、在app下的build.pro…...

Git统计个人提交代码行数

目录 一、git bash打开二、查看个人提交的代码行数统计三、查看项目每个人提交的代码行数统计四、查询所有用户的提交总次数五、统计用户一段时间内的提交代码量 在实际开发中&#xff0c;常常会想查看自己对于某个项目的贡献&#xff0c;管理者会查看项目下各成员的贡献&#…...

Collction的List方法,list特有方法,遍历方式,迭代器选择

[to] list特有方法 //插入指定元素//list.add(1,"ddd");//System.out.println(list);//[aaa, ddd, bbb, ccc]//这个表示在一索引的位置插入ddd//他会把原来一索引位置的元素往后移动一位在添加//删除指定元素//String remove list.remove(1);//System.out.println(…...

奇偶校验码和循环冗余码

在数据链路层的传输中&#xff0c;1可能变成0&#xff0c;0可能变成1&#xff0c;这是比特差错。 为了应对比特差错&#xff0c;有两种方式&#xff0c;即自动重传请求ARQ&#xff08;Automatic Repeat-reQuest&#xff09;和前向纠错FEC&#xff08;Forward Error Correction&…...

Recommender System复习(考试向)

Recommender System Review OverviewCollaborative Filtering基于用户的CF&#xff08;User CF&#xff09;基于物品的CF&#xff08;Item CF&#xff09;Similarity CalculationBias in CF Evaluation of Recommender SystemFactorization MachinesLatent factor modelLFM算法…...

SpringBoot绑定配置文件中变量的四种方式-解析

当在Spring Boot中需要绑定配置文件中的变量时&#xff0c;可以使用以下注解&#xff1a; PropertySource&#xff1a;用于指定要加载的属性文件。可以将该注解放置在Configuration类上。 Configuration PropertySource("classpath:application.properties") public…...

linux 安装 elasticsearch 全教程

一、去 elasticsearch官网找到Linux版本的下载链接 地址https://www.elastic.co/cn/downloads/elasticsearch 二、在linux 中用wget下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz三、下载成功后解压文件 tar -x…...

更快更准 | YOLOv3算法超详细解析(包括诞生背景+论文解析+技术原理等)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv3是一种基于深度学习的目标检测算法&#xff0c;它可以快速而准确地在图像中检测出多个目标。它是由Joseph Redmon和Ali Farhadi在2018年提出的&#xff0c;是YOLO&#xff08;You Only Look Once&#xff09;系列算法…...

【ChatGPT】教我 Flyweight(享元) 模式

文章目录 设计模式中 Flyweight 模式&#xff0c;实际应用场景有哪些&#xff1f;我需要画很多的树&#xff0c;以这个需求为例来教我 Flyweight 模式。好的&#xff0c;我大概明白了&#xff0c;我还有点疑惑&#xff0c;请问外在状态和内在状态是哪些&#xff1f;你可以讲一下…...

双十一越来越早,公域电商何去何从——深度解析

为什么双十一越来越早&#xff1f;传统的公域电商越来越饱和,某淘某东甚至和某79元网红打起了价格战 &#xff0c;市面上标品越来越多&#xff0c;商家越来越多&#xff0c;买东西的变少了&#xff0c;商家越卖越便宜。 公域电商&#xff1a; 就像一个大市场。里面摆满了各种商…...

区块链中的 “不可能三角,技术性ppt突出关键技术点,数据交易-安全问题

目录 区块链中的 "不可能三角 技术性ppt突出关键技术点 数据交易-安全问题...

[Docker]五.Docker中Dockerfile详解

Dockerfile 就是用来构建 docker 镜像的构建文件 1.Dockerfile 构建一个自己的 centos 镜像 新建一个名为 Dockerfile 文件&#xff0c;并在文件内添加以下内容: #基于centos构建镜像 FROM centos #安装net-tools软件: RUN表示安装软件 RUN yum install -y net-tools…...

react使用react-sortable-hoc实现拖拽

react-sortable-hoc拖拽 安装 npm install react-sortable-hoc --save 代码如下&#xff08;示例&#xff09;&#xff1a; import React, { useImperativeHandle, forwardRef, memo, useState } from react;import { DrawerForm } from ant-design/pro-form;import { messag…...

实习日常的点点滴滴记录(Spring Boot的核心注解)------慢慢积累,厚积薄发(要学的东西还好多,加油!))(知识和实践的结合)

Spring Boot的核心注解有&#xff1a; **SpringBootApplication&#xff1a;**这是Spring Boot最核心的注解&#xff0c;用于开启Spring Boot的各项能力。 它其实是SpringBootConfiguration、EnableAutoConfiguration、ComponentScan这三个注解的组合。 Configuration&#xf…...

第 04 章_逻辑架构

第 04 章_逻辑架构 1. 逻辑架构剖析 1. 1 服务器处理客户端请求 那服务器进程对客户端进程发送的请求做了什么处理&#xff0c;才能产生最后的处理结果呢&#xff1f;这里以查询请求为 例展示&#xff1a; 下面具体展开看一下&#xff1a; 1.2 Connectors 1.3 第 1 层&…...

免费API接口资源推荐

企业基本信息(含联系方式)&#xff1a;通过公司名称/公司ID/注册号或社会统一信用代码获取企业基本信息和企业联系方式&#xff0c;包括公司名称或ID、类型、成立日期、电话、邮箱、网址等字段的详细信息。企业投资&#xff1a;获取企业对外投资信息&#xff0c;对外投资信息包…...