Springboot 完整搭建快速入门,必看!

时间:2023-03-09 20:15:28
Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

前言

手把手教你Springboot微服务项目搭建快速入门,通过本文学习Springboot的搭建快速入门,掌握微服务大致的配置服务,后续将会继续将核心组件引入到项目中,欢迎关注,点赞,转发。

Springboot 完整搭建快速入门,必看!

Springboot项目搭建将会从以下几个方面进行项目搭建快速入门

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

一、项目创建

新建Maven项目

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

根据上面操作即可完成项目搭建

Springboot 完整搭建快速入门,必看!

二、pom.xml依赖添加

接下来在pom.xml引入springboot相关依赖

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

引入Springboot相关依赖,完成对项目的依赖配置。

Springboot 完整搭建快速入门,必看!

三、新建数据库表

首先建一张User数据库表

1. 这里用navicat数据库链接工具

2. 新建一个springboot数据库(可自行定义)

3. 创建建表语句:

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

四、新建App.java项目启动类

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

五、新建Controller

Springboot 完整搭建快速入门,必看!

行App,在浏览器输入:localhost:8080/hello,发现“hello spring-boot”说明第一步部署成功。

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

六、集成MyBatis

1. 在pom.xml文件中引入mybatis 和 数据库(这里用mysql)的依赖

Springboot 完整搭建快速入门,必看!

生成mapper

1. 在resources目录下,新建一个application.properties(这里用properties,有兴趣小伙伴可以使用yml文件,这里名字只用application.properties,不要用其他,否则识别不出),增加如下内容:

Springboot 完整搭建快速入门,必看!

2. 创建好对应的model、dao、mapping文件夹,准备MyBatis的生成文件generatorConfig.xml

Springboot 完整搭建快速入门,必看!

3. 在pom.xml文件里面引入generator的plugins

Springboot 完整搭建快速入门,必看!

4. 运行generatorConfig.xml文件,生成对应的model、dao、mapping文件,运行方式如下:

(用这种方式是避免开发人员找不到运行的方式)

Springboot 完整搭建快速入门,必看!

5. 运行后,可以得到下图结果

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

七、UserMapper.java文件中新增登陆方法:

1. 新增登陆方法

Springboot 完整搭建快速入门,必看!

2. 对应UserMapping.xml文件

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

八、 新建service实现方法

1. IUserService.java 接口

Springboot 完整搭建快速入门,必看!

2. UserServiceImpl.java实现类

Springboot 完整搭建快速入门,必看!

3. UserController.java类中增加login和register方法

Springboot 完整搭建快速入门,必看!

启动App.java,并运行:

在浏览器上输入:localhost:8080/register?username=deer&password=123,显示“注册成功”

在浏览器上输入:localhost:8080/login?username=deer&password=123,    显示“登陆成功”

以上就完成了后台的Controller、Service、Dao之间的交互

Springboot 完整搭建快速入门,必看!

九、实现事务支持

修改IUserService接口,增加一个新增batchAdd方法,在UserServiceImpl增加相应实现类,在实现类中故意产生一个被0整除得异常

1. IUserService.java接口中增加batchAdd抽象方法

Springboot 完整搭建快速入门,必看!

2. UserService.java类中实现batchAdd()方法

Springboot 完整搭建快速入门,必看!

3. 重新运行App.java,在浏览器输入:

localhost:8080/batchAdd?username=enjoy&password=123

可以发现在浏览器上出现

Springboot 完整搭建快速入门,必看!

然后检查数据库,发现表里面已经产生了一个错误的数据,产生了事务不一致问题。

4. 添加事务支持:

在batchAdd方法上增加@Transactional注解

Springboot 完整搭建快速入门,必看!

重启服务后,在浏览器上输入:localhost:8080/batchAdd?username=enjoy&password=123

浏览器还会继续报错,但检查数据库,并没有新增数据,由此可知事务问题已经得到了解决

Springboot 完整搭建快速入门,必看!

十、全局异常

通过上面步骤,虽然已经解决了事务问题,但界面上出现这500错误,这对用户来说还是不友好。

一般在企业里面对这些异常一般都会统一捕获,由一个专门的异常处理类来统一处理。

1. 异常捕获

新建全局异常处理类GlobalExceptionHandler.java类

Springboot 完整搭建快速入门,必看!

重启服务后,在浏览器上输入会出现异常的服务

localhost:8080/batchAdd?username=enjoy&passwd=123

界面返回:

Springboot 完整搭建快速入门,必看!

2. 404页面处理

在浏览器上故意输错地址

localhost:8080/batchAddx?username=enjoy&passwd=123,后端并没有这服务,虽然已经做了相关的异常捕获,但浏览器还是显示了:

Springboot 完整搭建快速入门,必看!

这个时候返回页面非常的不友好,要做404异常处理(其他异常代码一样)。

在配置这样错误页面的时候,以前是在WEB.XML中进行配置,而在这里,需要有个WebServerFactoryCustomizer的实例进行配置

3. 在前面建立的GlobalExceptionHandler,新建一个方法

Springboot 完整搭建快速入门,必看!

4. 新建BaseController.java类

Springboot 完整搭建快速入门,必看!

重启服务,在浏览器上输入

localhost:8080/batchAddx?username=enjoy&passwd=123

此时,页面返回“404,没有找到页面!”

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

十一、静态资源访问

静态资源:js, css, html, 图片,音视频等

静态资源路径:是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取。

Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:

/static

/public

/resources

/META-INF/resources

1. 在resources目录下面建立static文件夹,在文件夹里面任意放张图片。

Springboot 完整搭建快速入门,必看!

在地址栏上输入localhost:8080/enjoy.jpg,可以看到图片

Springboot 完整搭建快速入门,必看!

十二、前端页面

1. 引擎模板

SpringBoot 推荐使用模板引擎来渲染html,如果你不是历史遗留项目,一定不要使用JSP,常用的模板引擎很多,有freemark,thymeleaf等,其实都大同小异

其中springboot 强烈推荐的是用thymeleaf

pom文件种添加thymeleaf的支持:

Springboot 完整搭建快速入门,必看!

2. 新建Controller

Springboot 完整搭建快速入门,必看!

Springboot默认的模板配置路径为:src/main/resources/templates

在resources目录里面新建一个templates目录,在目录里面新建testThymeleaf.html文件

Springboot 完整搭建快速入门,必看!

在浏览器上输入:localhost:8080/tpl/themeleaf,可以看到页面。

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

十三、集成Swagger2 构建API文档

1. Swagger2 的作用

①. 随项目自动生成强大RESTful API文档,减少工作量

②. API文档与代码整合在一起,便于同步更新API说明

③. 页面测试功能来调试每个RESTful API

修改pom文件,添加swagger2的相关依赖

Springboot 完整搭建快速入门,必看!

2. 新建一个swagger的配置类SwaggerConfig.java

Springboot 完整搭建快速入门,必看!

3. 新建Controller用于显示相关接口

Springboot 完整搭建快速入门,必看!

访问:http://localhost:8080/swagger-ui.html

Springboot 完整搭建快速入门,必看!

如何使用呢?

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

以上就是swagger2的配置和使用。

Springboot 完整搭建快速入门,必看!

十四、日志集成

在springboot中默认使用的日志工具是logback,不过在提及具体的日志工具之前要提一个名词,这个名词就是slf4j(Simple Logging Facade For Java)

百度百科解释

https://baike.baidu.com/item/slf4j/6408868

slf4j不是具体的日志解决方案,它有点类似于jdbc,使用了门面模式,是一个针对各类日志的抽象实现,既然是抽象的日志实现,在springboot中肯定不需要额外导入。

注意:spring-boot-starter中就提供了对spring-boot-starter-logging的依赖

在spring-boot-starter-logging中可以看到以及集成了slf4j与具体实现logback的默认支持

1. 修改UserController

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private final Logger logger = LoggerFactory.getLogger(UserController.class);

Springboot 完整搭建快速入门,必看!

在浏览器上输入:localhost:8080/hello,可以看控制台日志的输出

Springboot 完整搭建快速入门,必看!

2. 日志级别

修改controller 把日志的输出改成

logger.debug("这个一个hello日志");

这个时候重启,再调用,发现后台并不会有任何输出,这原因是日志级别在作祟

默认情况下,Spring Boot 配置的是INFO 日志级别,也就是会输出INFO级别以上的日志(ERROR, WARN, INFO)。

如果需要 Debug 级别的日志。在 src/main/resources/application.properties 中配置。

debug=true

此外,配置 logging.level.* 来具体输出哪些包的日志级别。

例如

logging.level.root=INFO

logging.level.org.springframework.web=DEBUG

logging.level.cn.cansluck.controller=DEBUG

Springboot 完整搭建快速入门,必看!

这个时候,包括springframework.web以及cn.cansluck.controller的debug日志都可以输出来了

Springboot 完整搭建快速入门,必看!

3. 日志文件

一般情况下,springboot日志只会输出到控制台,并不会写入到日志文件,但是,在一些正式环境的应用中,我们需要通过在 application.properites 文件中配置 logging.file 文件名称和 logging.path 文件路径,将日志输出到日志文件中。

logging.path = /var/tmp

logging.file = xxx.log

logging.level.root = info

注意:

如果只配置 logging.path,在 /var/tmp文件夹生成一个日志文件为 spring.log。如果只配置 logging.file,会在项目的当前路径下生成一个 xxx.log 日志文件。

这里有一个坑,logging.path 和logging.file都配置了,只会有logging.file生效,所以,如果要指定日志生成的具体位置使用logging.file 配置就好

在application.properties中配置

logging.file =D:\\log\\enjoy.log

这样在F盘的相应位置出现日志文件

3. log4j2

在spring-boot-dependencies POMs中搜索spring-boot-starter-log4j2

发现Spring boot父Pom中自己提供了这个依赖,于是我们加入如下jar依赖:

修改pom.xml文件

Springboot 完整搭建快速入门,必看!

注意: 由于默认使用logback在扩展log4j2之前先要把logback移除

日志使用跟上面logback一样。

Springboot 完整搭建快速入门,必看!

十五、使用AOP统一日志处理

为了防止在工作中经常在代码中加入大量的日志处理代码,在实际项目开发中,一般使用AOP统一完成日志处理工作

1. 修改pom文件,引入springboot对aop的支持

Springboot 完整搭建快速入门,必看!

2. 新增AOP日志处理类

Springboot 完整搭建快速入门,必看!

通过访问Controller可以从日志看到,AOP切面方法已经生效

Springboot 完整搭建快速入门,必看!

Springboot 完整搭建快速入门,必看!

总结
    本文通过图文形式,学习Springboot快速入门,包括项目创建、Springmvc集成、MyBatis集成配置、事务集成配置、全局异常配置、Swagger2集成配置、AOP统一日志处理,将整个流程大概介绍了一遍,让想了解和学习Springboot的小伙伴能够对整体流程有个大概了解,也希望能够利用自己空闲时间按照上面流程完整操作一遍,可以加深自己的理解和印象。如有疑问欢迎评论留言,小编会及时回复哦~喜欢的小伙伴动动手指点个赞、收藏吧!

更多精彩敬请关注公众号

Springboot 完整搭建快速入门,必看!

Java极客思维

微信扫一扫,关注公众号​