【学习】超详细!SpringBoot开发RESTful规范接口教程 - 第一期
俗话说,不会写API接口的前端不是一个好前端!
眼看着五一已经快三天过去了,想了想不能白玩过去,总得做些什么。
之前有学过Spring boot但没有实际做一个项目,这次就给大家做一个Spring boot加Vue前后端分离的全栈项目,超详细。
整个第一部分教程从以下列出项进行:
本期主要完成前三个列项
【1】怎么创建
【2】怎么运行
【3】代码结构
【4】创建第一个接口
【5】日志
【6】配置文件
【7】热部署
【8】Git
【9】Maven
| 【1】怎么创建?
两种方式创建Spring Boot项目
【第一种方式】打开浏览器输入 https://start.spring.io/
Spring Boot
按照下图所示选择或填写对应内容
接下来我们进行依赖的添加
点击 ADD DEPENDENCIES
添加一个基础的Spring Web依赖
接下来点击GENERATE
点击之后会下载一个压缩包zip,然后解压用IDEA打开就可以了。
【第二种方式】IDEA创建项目
新建项目 如图所示
选择依赖 Spring Web 然后点击完成
注意:如果构建速度很慢的情况下,可以配置一下本地Maven环境以加快构建速度。
setting.xml文件配置
This XML file does not appear to have any style information associated with it. The document tree is shown below.<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">// 本地仓库路径 注意我这里是Mac环境Windows环境自行更换本地地址<localRepository>/opt/mavenRepo</localRepository><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors>// 配置阿里镜像<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors><profiles></profiles></settings>
| 【2】怎么运行?
运行StudyApplication中的main方法 或者工具栏中快捷指令启动也可以
项目已启动 8080端口
打开浏览器访问 http://localhost:8080
提示 Whitelabel Error Page // 白标签错误页面 说明项目已经正常启动可访问
学习要点:
(1) springboot不需要配置容器,是因为使用了嵌入式容器,默认使用tomcat启动,默认端口8080 当然用传统的方式,打成war包放入单独的tomcat也是可以的。
(2) springboot项目使用main函数启动,一般放在XXXApplication类里,需要加@SpringBootApplication注解。
(3) Maven Wrapper可以不需要提前下载好Maven,由它去下载Maven。
| 【3】代码结构
(1)编码配置
设置整个项目编码格式
(2)JDK
如果项目从别人那边copy过来的,需要注意设置JDK
(3)Git版本管理 代码关联Git远程仓库
注意:需要提前配置好远程仓库地址本地初始化一个仓库,设置远程仓库地址后再做push$ git init //初始化本地仓库$ git add . // 提交到本地暂存区$ git commit -m "message" // 提交修改内容描述$ git remote add origin 远程仓库地址 // 关联远程仓库地址$ git push origin master // push 到远仓库这样就完成了版本的一次初始化。
(4)启动日志优化
logback日志样式修改
添加logback-spring.xml文件,内容如下:
注意:2.2.X版本,可以识别logback.xml,到2.3后只能用logback-spring.xml
<configuration><!-- 修改一下路径--><property name="PATH" value="./log"></property><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%-50logger{50}:%-4line) %thread %green(%-18X{LOG_ID}) %msg%n</Pattern>--><Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %green(%-18X{LOG_ID}) %msg%n</Pattern></encoder></appender><appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${PATH}/trace.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><layout><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern></layout></appender><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${PATH}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><layout><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern></layout><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><root level="ERROR"><appender-ref ref="ERROR_FILE" /></root><root level="TRACE"><appender-ref ref="TRACE_FILE" /></root><root level="INFO"><appender-ref ref="STDOUT" /></root></configuration>
添加之前效果
添加之后的效果
增加启动成功日志
改造一下 StudyApplication
package com.reolove.study;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.core.env.Environment;@SpringBootApplicationpublic class StudyApplication {private static final Logger LOG = LoggerFactory.getLogger(StudyApplication.class);public static void main(String[] args) {SpringApplication app =new SpringApplication(StudyApplication.class);Environment env = app.run(args).getEnvironment();LOG.info("启动成功!");LOG.info("地址:\thttp://127.0.0.1:{}",env.getProperty("server.port"));}}
application.properties 文件增加启动端口
server.port=8880
效果如下:
修改启动图案
resources 目录下增加一个banner.txt文件
PS: 可以生成不同的启动图案
启动后
以上就是本期教程,下期内容将完成实现一个Hello World接口 以及项目分层 启动类换位置。
