idea没有springboot_springboot 系列 springboot 初探

本篇是 springboot 系列的第一篇。先把本篇文章的大纲列出来。如果有读者觉得文章太长,可以挑自己想看的进行学习。

① springboot 是什么?

② 为什么大家都在用 springboot?用 springboot 的好处在哪?

③ springboot 与 spring 之间的关系?(毕竟名字里都带个 spring,容易让人产生联想)

④ springboot 的简单使用

⑤ 下节预告

大家可能发现了,本篇文章的大纲前三个结尾都用了问号。为什么呢?因为我觉得学习的过程就是一个不断提问的过程,不知道大家以前读书时,老师有没有跟你们说过要带着问题去学习。反正我的老师跟我说过,而且不止一次。

学习一门新技术之前,肯定都是要问自己一句,这是什么?那么 springboot 是什么呢?要回答这个问题,最好的答案在哪里找?这个想必大家都知道,没错,就是官网。在这里也贴出 springboot 官网的地址(还不知道的同学抓紧收藏,毕竟收藏就等于我会了):spring.io/projects/sp…

c4a4c3b7c44c6c053abafe899c07b728.png

如果英文不是很好的童鞋,可以把这句话复制出来粘贴到有道翻译中,看看正统的翻译是怎样的,在这里我也将有道翻译的结果贴出来:

f40330d7de245927e2f51aaae5cfdffd.png

说实话,我第一次读到的时候给我的感觉就是怪怪的,有种似懂非懂的感觉。因此我们需要把自己的理解加进去,让这个知识点能够更加深刻的记在自己的脑海里。

先说下我本人对这句话的理解,从这句话中可以提取出几个关键字,可直接运行、独立的、生产级的、基于 spring 的、变得容易。将这几个关键字结合起来,我觉得就能回答这个问题了。即 springboot 可以创建一个独立的、生产级的、基于 spring 的应用,并且创建的这个过程可以变得很容易。而在这几个关键字中,我觉得最吸引人的应该就是容易这两个字眼了。

相信对于 java 程序员,对 spring 这个框架都不陌生,或多或少都有了解过(如果对 spring 不了解的童鞋可以先把这一系列的文章放一放,先去了解下 spring,毕竟 spring 对于 springboot 来说,是它爹一般的存在)。spring 这个框架也确实为我们的开发带来了很多便利之处,比如控制反转(ioc)、依赖注入(DI)、面向切面编程(AOP)等,这些功能使得作为程序员的我们可以把关注度更好的放在业务逻辑的开发上。但 spring 也有一个让人抓狂的缺点,就是配置文件较多,并且很繁杂,各种 xml、properties 都让人眼花缭乱,而这也会让开发者的精力被分散,但这又是不得不面对的一件事。所以 spring 对于我们广大的开发者来说真的又爱又恨。

而 springboot 框架则发现了这一问题,springboot 将一个个的配置文件都转变成了一个个的自动配置类(对这一概念模糊的童鞋莫慌,后面的文章会对这一概念进行解释),而以往配置文件的功能就通过这些配置类进行实现,并且这些配置类会进行自动的配置(根据各式各样的条件注解),不需要程序员的干预(如果大家手头上有基于 spring 和基于 springboot 开发的应用的代码的话,大家可以比较下两者在配置文件数目上的差别)。所以这也是为什么在 springboot 的官网中用到了 easy 这个单词。而这也就解释了大纲中提到的第二个问题,当然了,springboot 之所以受人青睐当然不止简单这一个特点,比如可以直接打成 jar 包,方便部署、嵌入式的 tomcat(这个特点可以使得应用不依赖外部的 tomcat 环境)、与 springcloud 的无缝对接等等。用 springboot 的好处就不在此一一列举了,大家在以后的使用过程中都可以感受到。

写到这,相信大家应该都对 springboot 有了一个大概的了解,那么它跟 spring 又有什么关系呢?其实这个问题的答案已经包含在了官网对于 springboot 的解释中,即 基于 spring。什么意思呢?就是说如果把 springboot 看成是一栋楼的话,那么 spring 可以说是这栋楼的地基。从来没听说过哪栋楼是没有地基的吧。那么该如何看到这个地基呢 ?大家可以找一个简单的 springboot 项目(springboot 项目的搭建会在后续向大家介绍),在 idea 中打开这个项目后,可以看下项目引入的外部依赖有哪些。如果没有 springboot 项目,我在这里用一个简单的 springboot 项目做演示。

项目的整体结构如下(项目所使用的开发环境为 idea,非常好用,强烈推荐 !!!但也有一个致命的缺点,就是要收费):

89c048bb80d4e0f6634d8df1fe09ff79.png

在项目的下方双击 External Libraries 展开项目的外部依赖,如下:

89ab8b37acaf90c80f955e4fe430fc4f.png

展开后可以看到虽然在本项目中并没有显示的声明有关于 spring 的依赖,但在外部库中依然看到了关于 spring 核心的相关依赖(上图中框住的部分)。当然了,关于 springboot 和 spring 之间的关系,上面的回答只是我的一家之言。这是开放性问题,仁者见仁,智者见智的问题,随着每个人在不断的深入使用 springboot 的过程中,每个人都会对它有越来越深的认识。所以我在这里也仅仅只是起到一个抛砖引玉的作用。

------ 中场休息一波,因为接下来就要动手实操了 ------

学习一门技术光纸上谈兵可不行,还得上手实操才行。接下来笔者会带大家从零搭建一个简单的 springboot 项目,带大家感受一下 springboot 的魅力。

首先打开 idea,新建一个项目,填写好相关信息后,一路 next,然后 finish 即可,接下来就是等待 idea 把项目初始化好(如果本地 maven 库中没有相关的依赖,maven 会到你配置的远程库中下载所需的依赖,这个过程如果觉得很慢,可以把远程库的地址改为阿里的远程库地址,网上也有相应的教程,这里就不展开了)。

idea 初始化好的项目如下:

a217532eb2ae405290d513f0b560035e.png

①、打开 pom 文件,将如下的内容复制到 pom 文件中,如下:

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.examplespringboot_demo1.0-SNAPSHOTorg.springframework.bootspring-boot-starter-parent2.1.7.RELEASEorg.springframework.bootspring-boot-starter-web
复制代码

然后等待 idea 将相关的依赖导入完成,导入的过程中,idea 下面会有一个进度条显示进度。

②、导入完成后,在 java 目录下新建一个 package ,包名符合 java 的命名规范即可,笔者建立的包名为 demo,如下:

20cd3ac0736a7521191ec35255bc57e2.png

接下来编写的代码都是在 demo 这个 package 下进行编写,在 demo 这个 package 下新建一个类,类名为 App,类中代码如下:

package demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class App {    public static void main(String[] args) {        SpringApplication.run(App.class);    }}
复制代码

如果对上面的部分代码产生疑惑,没关系,这里可以先给自己留个疑问,这些东西都会在后续的文章中做回答。

③ 、在 demo 这个 package 下新建一个子包,包名为 controller,在该子包下新建一个类,类名为 TestController,如下:

6ef46faa26eaf4b090b197a0ff4936fd.png

TestController 类中的代码如下:

package demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController {    @RequestMapping("/test")    public String test(){        return "success";    }}
复制代码

使用过 spring 开发 web 项目的童鞋对上面的代码应该不会有不解。

④、回到之前创建的 App 类中,直接运行该类,运行后大家可以在控制台上发现有如下的输出:

18ca98e266d6dc5426814ffe1584d5ae.png

大家可以在上面的打印中发现了一个比较熟悉的字眼,tomcat。有的人可能会疑惑,为什么在 pom 文件中没有看到任何与 tomcat 有关的依赖,也没有启动任何的外部 tomcat,但是在启动时却把 tomcat 给启动了?这个其实就是我之前说的嵌入式容器,springboot 应用可以在不需要外部 servlet 容器的情况下运行一个 web 项目,接下来我们就来验证下:

打开游览器,在地址栏上输入:127.0.0.1:8080/test 后就可以看到游览器返回了一个 success 的响应

ff46fd3292ac764b4138a8f16e1b1d15.png

到这里,一个简单的 springboot 应用就搭建起来了。怎么样,是不是很简单。如果大家有兴趣,可以试试不使用 springboot 而是使用 spring + springmvc 搭建一个 web 应用,大家就能够很明显的感觉到使用springboot 能够给平时的开发带来多大的便利性。


作者:对方正在输入
链接:https://juejin.cn/post/6898541088991412237

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值