搭建自己的spring boot项目

一、背景

本文章属于系列文章,背景请前往系列入口文章
本篇介绍如何上手搭建一个基于spring boot的项目

二、spring boot

1. spring boot是什么?

spring boot可以快速搭建一个可配置、可运行的后端web项目,从繁杂的xml配置,到基于注解、自动扫描,很大地 方便了开发者的工作。(如果有点历史的人,应该知道web.xml配置controller、dispatcher的年代,哈哈)

2. 上手

2.1 官网下载

image.png

进入官网,按照图片顺序,下载基础代码。

2.2 运行

2.2.1 打开项目

完成上面的步骤后,会下载一个包,以项目的方式打开(这里我用的是idea开发工具)
(若打开项目失败,可以尝试直接打开根目录下的build.gradle文件,idea会自动识别成gradle项目)

2.2.2 点击运行
image.png
2.2.3 运行成功
image.png

2.3 添加依赖

将build.gradle修改为:

plugins {
    id 'org.springframework.boot' version '2.3.3.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
//  id "org.flywaydb.flyway" version "6.5.5"
}

group = 'com.mark'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtime('mysql:mysql-connector-java') //JDBC依赖库
}

test {
    useJUnitPlatform()
}

其中,lombok是一个插件,jpa 和 mysql 是用来处理数据库连接的。
接下来,我们要连接数据库,希望可以对数据库进行增删改查,对外暴露rest接口

2.4 数据库准备

2.4.1 遇到的错误

我这里用了mysql,最开始用本地对mysql,并且设置了密码跳过功能(也就是每次登录mysql,只需要给用户名root,不用密码),导致出现了一下错误:

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

具体原因还没有研究,但是为了简单的刻意练习,建议不要设置成密码跳过,而是用docker的方式

2.4.2 docker启动mysql

docker 不是本文重点,请自行安装。
需要先安装docker,再拉镜像,接着运行。这里给出 mysql镜像地址

  • 拉镜像:docker pull mysql
  • 运行:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3309:3306 mysql:5.7
  • 进入镜像系统:docker exec -it some-mysql bash
  • 在镜像里面进入mysql:mysql,如图:
    image.png

2.5 数据库连接配置

准备好数据库后,我们需要把项目和数据库进行连接,做CRUD时,会走这个数据库。

2.5.1 配置src/main/resources/application.properties文件如下:
spring.datasource.url=jdbc:mysql://127.0.0.1:3309/supermarket
spring.datasource.username=root
spring.datasource.password=password

2.6 准备数据库数据

在刚刚docker启动的容器中(mysql>处),执行以下命令(这里我们创建了一个数据库supermarket,并且新建了item表,这个表的id是自增的)

CREATE DATABASE `supermarket` /*!40100 DEFAULT CHARACTER SET utf8 */

# 在supermarket中建表
CREATE TABLE `item` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `price` double unsigned NOT NULL DEFAULT '0',
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

# 可以在 item 中自定义两条数据,请自行执行insert into指令

至此,所有的准备工作都已完毕,接下来可以进行接口的开发。接口的开发主要是利用注解、jpa、controller、repository、entity等,具体请自行分析github项目代码的first分支。

若拷贝完代码,打开http://localhost:8080/,效果如下图:

image.png

其余item的增删改查接口(github的代码可用),可供读者调试使用(如postman)。


image.png

(完)

你可能感兴趣的:(搭建自己的spring boot项目)