# SpringBootDemo **Repository Path**: zhaoyanjun/SpringBootDemo ## Basic Information - **Project Name**: SpringBootDemo - **Description**: 快速搭建一个后台应用,内部分享使用 - **Primary Language**: Java - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBootDemo ## 1、项目功能 快速搭建一个后台应用 ## 2、SpringBoot基本介绍 ### 2.1、SpringBoot是什么? - 1、是spring的快速开发框架 - 2、属于spring旗下的一个项目 - 3、[https://spring.io/projects/spring-boot/](https://spring.io/projects/spring-boot/) ### 2.2、SpringBoot优势是什么? - 1、简化配置 减少xml配置 - 2、简化编码 一个依赖解决所有问题 - 3、简化部署 SpringBoot 内嵌了 tomcat - 4、简化监控 线程、定时任务、磁盘、内存、url映射... ## 3、开发工具安装 3.1、下载 IDEA, Ultimate 版本,需要激活 [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/) 3.2、创建 Springboot 项目 ![](./readme/png/start1.png) ![](./readme/png/start2.png) ![](./readme/png/start3.png) ## 4、添加web核心依赖包 ```aidl implementation 'org.springframework.boot:spring-boot-starter-web' //web开发核心模块 ``` ## 5、请求参数 在 `Springboot` 中请求参数一般有 `@RequestParam`,`@PathVariable`,`@RequestBody`。那我们现在来逐一看一下这些注解我们该如何使用。 - @PathVariable: 一般我们使用 `URI template` 样式映射使用,即 `url/{param}`这种形式,也就是一般我们使用的`GET`,`DELETE`,`PUT`方法会使用到的,我们可以获取`URL`后所跟的参数。 - @RequestParam: 一般我们使用该注解来获取多个参数,在()内写入需要获取参数的参数名即可,一般在`PUT`,`POST`中比较常用。 - @RequestBody: 该注解和`@RequestParam`殊途同归,我们使用该注解将所有参数转换,在代码部分在一个个取出来,也是目前我使用到最多的注解来获取参数(因为前端不愿意一个一个接口的调试) ## 6、打包发布流程 这个打包流程是基于 `gradle` 构建环境下的。 ### 6.1、打 jar 包,基于自带的 Tomcat 容器运行 #### 6.1.1、输出可执行包 jar 包中自带 tomcat 容器,可以直接运行。直接点击 `bootJar` 任务,如图所示: ![](/readme/png/boot_jar.png) 可以在 `build/libs` 目录中可以看到,如图所示: ![](/readme/png/publish_jar_2.png) #### 6.1.2、运行可执行包 然后用命令行运行 `java -java xxx.jar` 就可以了。 然而,上面的这种方式,只要控制台关闭,服务就不能访问了。下面我们使得 jar 包在后台运行。 ``` java -jar SpringBootDemo-0.0.1-SNAPSHOT.jar > log.file 2>&1 & ``` bash 中 0、1、2 三个数字分别代表 `STDIN_FILENO`、 `STDOUT_FILENO` 、`STDERR_FILENO` ,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。 | 数字 | 含义 | | -------- | -----: | | 0 | 标准输入(一般是键盘) | | 1 | 标准输出(一般是显示屏,准确的说是用户终端控制台) | | 2 | 标准错误(出错信息输出) | 你应该也能猜到 `2>&1` 的用意了。不错,`2>&1` 就是用来将标准错误重定向到标准输出中的。此处 1 前面的 & 就是为了让 bash 将 1 解释成标准输出而不是文件 1 。至于最后一个 & ,则是让 bash 在后台执行。 ### 6.2、外部容器发布 war 包是需要放在 tomcat 中运行的。 #### 6.2.1、安装tomcat mac电脑安装tomcat [https://www.jianshu.com/p/69496fb3495e](https://www.jianshu.com/p/69496fb3495e) 启动 tomcat `sudo sh ./startup.sh` 关闭 tomcat `sh ./shutdown.sh` #### 6.2.2、输出可执行 war 包 jar 包中自带 tomcat 容器,可以直接运行。直接点击 `bootWar` 任务,如图所示: ![](/readme/png/boot_war.png) #### 6.2.3、运行 war 包 把这个 war 包直接放入 tomcat 的 webapps 目录就可以。 ## 7、项目配置 在 `resources` 目录下,有 `application.properties` 文件,这个文件可以配置一下项目的基本操作 ### 7.1、配置端口号 ```java server.port=8084 ``` ### 7.2 多环境配置 创建多个环境的 properties 文件,比如开发环境 `application-dev.properties` 、发布环境 `application-release.properties` 在 `application.properties` 文件下指定当前的运行环境 ```java # 多环境配置 spring.profiles.active=dev ``` ## 8、数据库操作 ### 8.1 数据库依赖添加 添加数据库 JPA 框架 ```java implementation 'org.springframework.boot:spring-boot-starter-data-jpa' //数据库操作 ``` 添加 mysql 驱动 ```java runtime('mysql:mysql-connector-java') //mysql驱动 ``` ### 8.2 下载并安装 mysql 8.0 #### 8.2.1 下载 mysql [https://dev.mysql.com/downloads/file/?id=486026](https://dev.mysql.com/downloads/file/?id=486026) ### 8.2.2 登陆 mysql 在 mac 系统偏好设置启动 mysql 服务 登陆 mysql `mysql -u root -p`