【微服务】131:最好用的框架SpringBoot
刘小爱自学Java的第131天。
感谢你的观看。
image今日学习内容安排如下:
-
为什么要使用SpringBoot?
-
SpringBoot的强大之处。
-
用SpringBoot编写入门程序,学习并使用Java配置的方式。
一、SpringBoot的引入
Java这门编程语言啊,一直存在一个被很多人诟病的问题:代码臃肿、使用麻烦。
当我们还在辛苦的搭建项目环境时,可能Python程序员已经把代码都快写完了。
你还真别信,现在从零开始搭建一个完整的SSM框架项目环境,少说也要二十来分钟。
究其原因主要是两点:
-
复杂的配置:各种xml文件的配置,spring的,mybatis的等等。
-
混乱的依赖管理:这个就更令人头痛了,既要决定项目里要用哪些依赖,又要解决版本冲突的问题。
而SpringBoot就是用来解决这些问题的。
imageSpringBoot是Spring项目中的一个子工程,Spring大家族中的一员。
boot也就是启动的意思,用SpringBoot创建Java应用会简单快速很多。
SpringBoot主要特点如下:
-
有一个非常快速的入门体验。
-
绝对没有代码生成,也无需 XML 配置。
-
更多高级的应用可以去官方文档查看。
二、SpringBoot快速入门
其中有两种创建方式:一种是手动创建maven工程,一种是使用脚手架自动创建。
这两种方式都非常的简单,我们手动创建:
image①添加父工程坐标
我们以前是自己创建一个父工程,这里是使用springboot自带的父工程:
spring-boot-starter-parent
使用SpringBoot能解决版本冲突问题。
版本冲突可是一个非常恼人的问题,有一些bug死活都找不出原因,可能就是版本冲突。
②引入依赖
父工程只是起到一个版本管理的作用,项目中具体需要使用到哪些依赖还是要引入。
上述例子中都是SpringBoot根据spring-boot-starter-web这个依赖自动引入的,而且所有的版本都已经管理好,不会出现冲突。
image③编写启动类
以前要么配置tomcat,要么使用tomcat插件,现在直接在main方法就能启动tomcat。
那需要怎么做呢?
-
使用@SpringBootApplication在类上说明。
-
在main方法中使用SpringApplication.run()。
-
其中参数为当前类的Class对象。
-
启动main方法即可运行SpringBoot。
④编写controller类
@RestController也就相当于@Controller加上@ResponseBody,我们可以看它的源码。
image@ResponseBody作用就是将返回值以JSON数据格式响应给前端。
返回值本来应该是对应一个视图的,比如hello.jsp文件,但是现在普遍都是前后端分离,后端中不需要出现前端代码,所以将响应的数据转换成JSON再响应。
⑤测试
在浏览器上输入对应的访问路径,即可访问到Controller类中的对应方法,页面内容也就是响应的Json数据。
三、Java配置
现在项目中没有任何的xml文件了,那么我们如果要配置一个Bean该怎么办?
1常规Java配置
使用Java配置即可解决这个问题,我们将Java配置和传统的xml配置做一个对比:
image①编写jdbc配置文件
这不用多说,数据库四大金刚,无论是xml还是Java配置都需要properties配置文件。
②xml配置方式
通过contex:property-placeholder标签引入jdbcp配置文件,再使用${}格式获取。
将德鲁伊数据源配置成spring容器中,同时用property标签完成属性赋值。
③Java配置方式
-
@Configurarion表示这是一个配置类。
-
@PropertySource表示引入配置文件。
-
@Value表示取出配置文件中的值。
-
@Bean表示存放到spring容器中。
以上都是见名知意的,知道单词的意思了也就明白其作用了。
2Java配置方式一
image①application.properties文件
这是SpringBoot默认读取的属性文件名,所以要把jdbc.properties名称改为该名称。
②自动读取
prefix="jdbc"表示读取属性文件中前缀为jdbc的值,所以其四个属性就完成注入了。
该方法就简单了很多,被经常使用,看起来也超级优雅,但是其也有一定的局限性:
配置文件中的属性只能被它一个Bean用
那如何让配置文件中的属性具有通用性呢?
3Java配置方式二
image①配置一个属性读取类
在类上通过@ConfigurationProperties注解声明当前类为属性读取类。
该类中的成员变量要和配置文件中的属性名一一对应,同时要有getXXX和setXXX方法。
我为了简便就直接使用了lombok插件。
②配置文件中的属性就具有通用性了
任何其它类想使用配置文件中的属性,引入该属性读取类,通过getXXX方法获取即可。
4测试
怎么测试Java配置的属性没有问题呢?
image我们这边可以使用debug打断点的方法,浏览器中输入路径,接受请求后,可以在控制台中查看dataSource中的属性。
如果出现了上图一样的结果,则表示配置文件中的属性被成功读取了。
最后
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。