SpringBoot(一)快速入门,你的第一个SpringBoot程序

SpringBoot快速入门

1、概述

SpringBoot为什么出来:简化配置文件,就好像Spring的升级版,原来很多东西需要手动配置,现在只需要自动配置!
以前SSM框架中需要配置好多文件,太麻烦了,而SpringBoot梳理了SSM框架中麻烦的地方,所有东西都不用自己去配置,自动生成
有种半自动换成全自动的感觉~

  • 各种.xml配置文件
  • tomcat 都要配置
  • lib依赖 也需要管理

SpringBoot中以上统统不用配置即可运行!

2、编写第一个SpringBoot程序

2.1、使用IDEA构建一个SpringBoot项目

在这里插入图片描述

2.2、填写Maven项目基本信息

在这里插入图片描述

2.3、勾选启动器(Spring Web) 如果你勾选了这个,相当于帮你自动配置好了Spring和SpringMVC!包括Tomcat~

在这里插入图片描述

2.4、项目构建完成

最终完成图如下:
在这里插入图片描述

2.5、写一个程序测试一下

  • 一定要在 SpringBoot 主启动类的同级或者子级目录下,新建包!否则是识别不了的;
  • 新建一个 controller
  • 在这个包下新建一个HelloController
/*
Description:controller控制视图跳转
Author:32259
Time:2020三月2020/3/313:04
*/

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello,springboot!";
    }
}
  • 启动主启动类,访问测试:http://localhost:8080/hello
    在这里插入图片描述
    结果:
    在这里插入图片描述
    OK,我们没有什么都没有配置,只不过是启动了一个类,怎么就开启了一个服务了呢?

  • 思考一个问题:我们没有配置tomcat、 没有配置servlet、没有配置spring,这个怎么生效的?

3、理解研究SpringBoot原理

3.1、小彩蛋:不一样的Logo

研究之前,不知道大家有没有发现我启动时那个Logo和大家的有点不一样呢?
我改成了我名字的字母全拼,大家想要改的话很简单~

  • 在resources目录下新建一个banner.txt文件
  • 打开banner生成网站(传送门)生成自己想要的Logo字体
  • 复制这个字体到你的banner文件内
    好了,那你自己的专属Logo就完成啦!

3.2、它怎么启动的?

每一个新建的SpringBoot项目中,都有一个主启动类

package com.gang;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//系统自己生成的
@SpringBootApplication // 只要标注了它就代表是SpringBoot的应用
public class HelloSpringbootApplication {
 // 你以为启动一个方法,没想到开启了一个服务
    public static void main(String[] args) {
        // Spring的启动类,通过run方法来具体执行
        SpringApplication.run(HelloSpringbootApplication.class, args);
    }
}
  • 一个注解:@SpringBootApplication
  • 一个类:SpringApplication

那么思考一个问题?

  • 我们可以把它删掉自己写一个主启动类呢?
    • 当然可以

好,我们把上面的主启动类删除,重新写一个主启动类

package com.gang;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
Description:主启动类
Author:32259
Time:2020三月2020/3/412:31
*/
//这是我自己写的
@SpringBootApplication
public class GangApplicationStart {

    public static void main(String[] args) {

        SpringApplication.run(GangApplicationStart.class,args);
    }
}
不一样的依赖

前面说到:我们没有配置tomcat、 没有配置servlet、没有配置spring,这个怎么生效的?
我们看一下它默认自带的pom.xml文件

  • 父依赖
<!-- 父依赖
spring-boot-starter-xx 启动类
-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>


<!--我们按住ctrl键点进源码后发现 里面还有一个父依赖-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

<!--再点进去,发现到头了,给大家截个图-->
<!-- 父依赖作用分析
1、自动帮你管理依赖,里面包含了几乎常用的所有依赖,如果你需要的依赖在这里面有,你就不要配置了,如果没有再配置
2、插件和资源过滤的自动管理;
-->

这里面包含了几乎普通项目要用的所有依赖!在这里插入图片描述

  • 启动器
<!--依赖-->
<!--在这里写的依赖都不需要版本号,只要在父依赖中有!-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!-- spring-boot-starter-xx 场景启动器;导入对应场景所需要的类
     会自动帮你导入封装了这个场景所需要需要的依赖
-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

我们发现这里的依赖都没有版本号,原因是父依赖中都有了,他会自动给你匹配父依赖中的版本!
当然,有的人就想用自己的版本,那你可以把版本号加上,这就是表示用自己(导入)的依赖,但是为了以防版本不兼容的问题,除非父依赖中没有这个以来,否则不推荐这么做~

在这里插入图片描述

大家看出这两种的区别了吗?
没写版本号他就会自动向上匹配父依赖中的版本,有了他就不会匹配了~

🆗,又到了说再见的时候啦~

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值