且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SpringBoot就是这么简单(上)

更新时间:2022-10-14 10:07:06

s一、SpringBoot入门


今天在慕课网中看见了Spring Boot这么一个教程,这个Spring Boot作为JavaWeb的学习者肯定至少会听过,但我是不知道他是什么玩意。

只是大概了解过他是用起来很方便,不用什么配置的。于是我就花了点时间去跟着学习了。

视频地址:http://www.imooc.com/learn/767

教程中的代码:https://gitee.com/liaoshixiong/girl


1.1SpringBoot启动


在教程中,启动SpirngBoot有三种方式:

  • 在idea中直接使用启动(最常用)
  • 使用mvn 命令来启动
  • 使用mvn编译,而后在class目录生成jar包,使用Java命令来启动


1.2项目属性配置


使用SpringBoot作为我们的框架,连Tomcat都不用自己配置。Tomcat默认的端口是8080。那如果我们要改端口的话,怎么改呢??项目中可能有一些属性变量,那怎么配置呢???

SpringBoot是提供了application.properties这种配置文件供我们使用的。

但是,我们可以有更好的配置方式,使用yml文件,这种配置文件使用起来就更加简洁了。

在yml文件中配置属性,那么我们在Controller中可以使用@value属性来进行获取。

SpringBoot就是这么简单(上)SpringBoot就是这么简单(上)


如果我们的配置属性是有规律的(是分类的),比如为System系统配置的属性,我们可以创建一个Java类来进行管理。

那么在获取的时候就不需要使用@value属性来分别获取了。直接获取Java类的成员变量就行了。

SpringBoot就是这么简单(上)SpringBoot就是这么简单(上)


当然了,这里涉及到了两个注解:

  • @configurationProperties
  • @Component

再举个例子,我们的生产环境和开发环境的配置变量很有可能是不一样的,比如:我们的path变量在开发环境中是:http://localhost:8080。而我们的生产环境中的path路径是:zhognfucheng.site。这就造成了差异,在springBoot中,这种差异就很好解决了。

SpringBoot就是这么简单(上)


  • 可以将开发环境的配置文件和生产环境的配置文件分开,使用总配置文件指定使用的是哪个配置文件。
  • 在使用java变量启动Springboot项目的时候,可以指定使用哪个配置文件。


二、回顾


2.1Controller的使用


SpringBoot已经不推荐使用JSP了,推荐使用模版来返回页面。thymeleaf这个模版,如果在返回页面的时候出错了,看看是不是没有使用模版。

@RestController = @Controller + @ResponseBody


2.2统一处理异常


统一处理异常我在Struts2、springMVC的时候都已经接触过了,方法都是类似的。定义一个自己系统的异常,为了更好地排查出错误所在。

而这个课程的统一处理异常我又学到了不少的东西:

  • 我们在Controller一般返回的是JSON数据给前端页面,如果出现了异常,你单独抛出了异常,如果没有做任何的处理,返回的JSON格式一定和成功的访问的是不一样的,那么这就会造成前台在解析的时候可能会有混乱。为了解决这种情况,我们可以单独封装一个类来进行返回,类的成员变量:code,message,data。有了这个类,那么返回的JSON格式就是相同的了。
  • 前边说到了返回类的code,这个code***就不要单独写出来。可以使用一个枚举来进行维护。这样的话就非常方便我们去操作了。
  • service抛出自定义异常、controller也抛出自定义异常。由Spring的异常处理器来进行捕获、对其进行输出、返回JSON给前台页面。


2.3AOP


SpringBoot环境下使用AOP,也是需要导入maven坐标的。知识点都和spring学习的差不多…

使用日志记录可以使用sl4jlog,这个是Spring自带的。

SpringBoot就是这么简单(上)


在返回给浏览器前记录返回的数据:

SpringBoot就是这么简单(上)

三、知新

3.1 SpringData JPA


SpringData JPA直接倒是听过,但是没了解过。课程说它就是一个标准,能够方便我们对数据库的CURD。

也去网上看了些资料,它的默认实现是Hibernate,因此,使用JPA,就相当于使用Hibernate了。

我认为它实际上就是封装了Hibernate的API,另Hibernate的开发又更加简单了。

创建一个接口,实现JPA所给出的接口,那么我们自己创建的接口就有了JPA也就是Hibernate的API了。

课程中使用的是RESTful风格的API实现增删改查:

SpringBoot就是这么简单(上)