【学习】超详细!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;
@SpringBootApplication
public 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接口 以及项目分层 启动类换位置。