首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【微服务】131:最好用的框架SpringBoot

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

作者头像
刘小爱
发布2020-08-24 11:17:59
5490
发布2020-08-24 11:17:59
举报
文章被收录于专栏:零基础自学Java零基础自学Java

刘小爱自学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中的属性。

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

最后

谢谢你的观看。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 刘小爱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SpringBoot的引入
  • 二、SpringBoot快速入门
  • 三、Java配置
  • 最后
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档