【微服务】131:最好用的框架SpringBoot

2020-08-24 11:17:59 浏览数 (1)

刘小爱自学Java的第131天

感谢你的观看

今日学习内容安排如下:

  • 为什么要使用SpringBoot?
  • SpringBoot的强大之处。
  • 用SpringBoot编写入门程序,学习并使用Java配置的方式。

一、SpringBoot的引入

Java这门编程语言啊,一直存在一个被很多人诟病的问题:代码臃肿、使用麻烦。

当我们还在辛苦的搭建项目环境时,可能Python程序员已经把代码都快写完了。

你还真别信,现在从零开始搭建一个完整的SSM框架项目环境,少说也要二十来分钟。

究其原因主要是两点:

  • 复杂的配置:各种xml文件的配置,spring的,mybatis的等等。
  • 混乱的依赖管理:这个就更令人头痛了,既要决定项目里要用哪些依赖,又要解决版本冲突的问题。

而SpringBoot就是用来解决这些问题的。

SpringBoot是Spring项目中的一个子工程,Spring大家族中的一员。

boot也就是启动的意思,用SpringBoot创建Java应用会简单快速很多。

SpringBoot主要特点如下:

  • 有一个非常快速的入门体验。
  • 绝对没有代码生成,也无需 XML 配置。
  • 更多高级的应用可以去官方文档查看。

二、SpringBoot快速入门

其中有两种创建方式:一种是手动创建maven工程,一种是使用脚手架创建。

这两种方式都非常的简单,我们手动创建:

①添加父工程坐标

我们以前是自己创建一个父工程,这里是使用springboot自带的父工程:

spring-boot-starter-parent

使用SpringBoot能解决版本冲突问题。

版本冲突可是个非常恼人的问题,有些bug死活都找不出原因,可能就是版本冲突。

②引入依赖

父工程只是起到一个版本管理的作用,项目中具体需要使用到哪些依赖还是要引入。

上述例子中都是SpringBoot根据spring-boot-starter-web这个依赖自动引入的,所有的版本都已经管理好,不会出现冲突。

③编写启动类

以前要么配置tomcat,要么使用tomcat插件,现在直接在main方法就能启动。

那需要怎么做呢?

  • @SpringBootApplication在类上说明。
  • 在main方法中使用SpringApplication.run()。
  • 其中参数为当前类的Class对象。
  • 启动main方法即可运行SpringBoot。

④编写controller类

@RestController相当于@Controller加上@ResponseBody,我们可以看它的源码。

@ResponseBody作用就是将返回值以JSON数据格式响应给前端。

返回值本来应该是对应一个视图的,比如hello.jsp文件,但是现在普遍都是前后端分离,后端中不需要出现前端代码,所以将响应的数据转换成JSON再响应。

⑤测试

在浏览器上输入对应的访问路径,即可访问到Controller类中的对应方法,页面内容也就是响应的Json数据。

三、Java配置

现在项目中没有任何的xml文件了,那么我们如果要配置一个Bean该怎么办?

1常规Java配置

使用Java配置即可解决这个问题,我们将Java配置和传统的xml配置做一个对比:

①编写jdbc配置文件

数据库四大金刚,无论是xml还是Java配置都需要properties配置文件。

②xml配置方式

contex:property-placeholder标签引入jdbcp配置文件,再使用${}获取。

将德鲁伊数据源配置成spring容器中,同时用property标签完成属性赋值。

③Java配置方式

  • @Configurarion表示这是一个配置类。
  • @PropertySource表示引入配置文件。
  • @Value表示取出配置文件中的值。
  • @Bean表示存放到spring容器中。

以上都是见名知意的,知道单词的意思了也就明白其作用了。

2Java配置方式一

①application.properties文件

这是SpringBoot默认读取的文件名,所以要把jdbc.properties名称改为该名称。

②自动读取

prefix="jdbc"表示读取属性文件中前缀为jdbc的值,所以其四个属性就完成注入了。

该方法就简单了很多,被经常使用,看起来也超级优雅,但是其也有一定的局限性:

配置文件中的属性只能被它一个Bean用

那如何让配置文件中的属性具有通用性呢?

3Java配置方式二

①配置一个属性读取类

在类上通过@ConfigurationProperties注解声明当前类为属性读取类。

成员变量要和配置文件中的属性名一一对应,同时要有getXXX和setXXX方法。

我为了简便就直接使用了lombok插件。

②配置文件中的属性就具有通用性了

任何类想使用配置文件中的属性,引入该属性读取类,通过getXXX方法获取即可。

4测试

怎么测试Java配置的属性没有问题呢?

我们这边可以使用debug打断点的方法,浏览器中输入路径,接受请求后,可以在控制台中查看dataSource中的属性。

如果出现了上图一样的结果,则表示配置文件中的属性被成功读取了。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

0 人点赞