超详细的Springboot入门教程,看了必会

SpringBoot
efdfb67745264e648ebb0bd30b124ac6.png

 

SpringBoot

学习目标

  • SpringBoot简介

    • Java开发发展史

    • SpringBoot和Spring关系

  • SpringBoot快速入门

    • 传统Maven 构建SpringBoot

    • ==Spring构建方式构建SpringBoot[IDEA工具提供了相关的构建方式]==

  • SpringBoot原理分析

    • 依赖关系管理-Java的引用非常少

    • 自动配置-自动加载对象实例

  • SpringBoot配置文件使用

    • SpringBoot配置文件[==application.properties/application.yml==]

    • SpringBoot配置文件数据加载/解析

    • 热部署插件

  • SpringBoot与其他框架集成

    • ==MyBatis==

    • ==JPA==

    • ==SpringData Redis==

    • ==定时任务==

  • SpringBoot单元测试

  • SpringBoot程序打包 jar/war web->jar

 

1 SpringBoot简介

1.1 目标

  • 理解SpringBoot

1.2 讲解

1.2.1 java的开发方式

  • 农耕时代java开发:

    • 基于java底层原生api,纯手工去实现,典型的栗子:servlet、jdbc、javascript、socket...

    • 针对这样低效开发方式,那么需要改革。框架就是拯救者,解放了农耕时代的程序猿,框架可以帮助我们做更多,程序猿主要负责业务的实现。

       

      df313b72a21e457a8286c426feeb74e8.png

       

  • 工业时代java开发:

    • 各种框架一顿搞:典型的栗子SSH、SSM、Vue、jquery、Netty...

    • 在工业时代使用框架虽然简化了我们的开发的代码,但是各种配置文件各种jar又一顿搞。微服务又成了拯救者,解放了工业时代的程序猿。让我们过上了小康生活。

       

      adb9aa6d5ae8441e96fbde97d468a3ae.png

       

  • 现代化java开发:

    • 各种微服务齐活:服务注册与发现、负载均衡与熔断、网关等

    • 各种组件一起上:springboot、springcloud...

       

b10b7bd0b22741ad83c1d138282c685b.png

 

1.2.2 SpringBoot简介

1.2.2.1 spring开发经历的阶段

Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。

  • 第一阶段:xml配置:在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换

  • 第二阶段:注解配置:在Spring 2.x 时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component、@Service),大大减少了配置量。

  • 第三阶段:java配置管理 :Annotation的出现是为了简化Spring的XML配置文件,但Annotation不如XML强大,所以无法完全取代XMl文件 。例如:@Configuration、@Import等。

所有这些配置都代表了开发时间的损耗。 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。除此之外,项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

Spring Boot 让这一切成为了过去。

  • 起步依赖:本质是Maven项目对象模型中的标签。它定义其SpringBoot对他库的传递依赖,依赖加在一起即可支持某项功能。最厉害的就是这个,使得SpringBoot具备了构建一切的能力:整合所有牛×框架

  • 自动配置:基于约定优于配置思想,配置基本都可以走默认值。配置基本都是SpringBoot自动完成

 

1.2.2.2 springboot简介

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是==用来简化新 Spring 应用的初始搭建以及开发过程==。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的==Spring应用==。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数Spring Boot应用只需要很少(额外)的Spring配置。我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,或者采用传统的war部署方式-jar。

我的理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。SpringBoot不是对Spring功能的增强,而是提供一种快速使用Spring的开发方式(全新的开发方式)。634a7a2d0476448bbfbadb06e7ce1f26.png

 

 

1.3 小结

  • SpringBoot并不是一个新的开发语言

  • Spring Boot 简化了基于Spring的应用开发

  • SpringBoot简化了配置

  • 能很容易整合很多第三方优秀框架

 

什么是SpringBoot/SpringBoot的特点

SpringBoot并不是一个新的开发语言,SpringBoot简化了Spring的应用开发,降低了Spring的学习和使用门槛,SpringBoot简化了Spring的配置,并且很容易整合第三方优秀的框架。

 

2 SpringBoot快速入门

2.1 目标

  • 搭建SpringBoot环境

  • 完成:开发一个web应用并完成字符串“hello springboot”在浏览器显示

 

2.2 讲解

2.2.1 springmvc实现简单回顾

实现步骤:

  • 创建maven工程

  • 导入相关依赖的jar包(例如:spring-web、spring-webmvc等)

  • 编写web.xml文件

  • 编写springmvc核心配置文件

  • 编写XxxController

 

2.2.2 SpringBoot实现

2.2.2.1 方式一

(1)创建maven工程

创建一个maven工程(建议:java工程,也可以是web工程),无需勾选maven骨架

1、添加起步依赖(依赖一个父工程)

2、添加web依赖61c15204430d4f8ba40a723c5ff6782c.png

 

 

 

依赖如下:

<!--父工程-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
</parent>
​
<!--起步依赖web-->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

 

(2)工程jar依赖情况

此时我们可以发现工程自动引入了很多包,其中还包含tomcat包。

 

c64dcfdf04864a93a28819c1a2ed129b.png

 

(3)引导程序

该程序是发布springboot应用的入口(只需要run一下)

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        // 只需要run一下,就能发布一个springboot应用
        // 相当于之前将web工程发布到tomcat服务器,只是在springboot中集成了tomcat插件
        SpringApplication.run(DemoApplication.class,args);
    }
}

 

(4) 编写HelloController

在工程的src目录下创建com.xxx.controller.HelloController

@RestController
public class HelloController {
    /**
     * 请求 /hello  输出hello springboot!
     * @return
     */
    @RequestMapping(value = "/hello")
    public String hello(){
        return "hello springboot!";
    }
}

 

(5) 测试

在DemoApplication里运行主方法,控制台数据如下图:

 

4bef05d1b9df4a36be0b9f4fb90fa0eb.png

 

访问:http://localhost:8080/hello

 

83f4ce25f4c546c8b52f45730d487bb0.png

 

2.3.2.2 方式二(建议)

(1)创建spring initializr工程

通过idea工具创建工程时,不再选择maven了而是选择spring initializr。然后去勾选相关依赖。

  • step1:新建module,选择spring initializr,然后下一步(如果默认网址不行可以换https://start.aliyun.com/)fc085ad9e25a47a983a0153ae40cda22.png

     6fec0a84acc948da96f465c27ea3c5a5.png

     

     

     

  • step2:填写项目相关信息f7f4cefab41e49998924683d83b6326a.png

     

     

  • step3:勾选需要的依赖5d09e81c9d144ba8a4ef43179dc13b11.png

     

     

  • step4:完成,工程的目录结构如下

     

14fe984d59534c8d83ebbf829b1642ef.png

 

(2)编写HelloController

在工程的src目录下创建com.xxx.springbootdemo2.controller.HelloController

@RestController
public class HelloController {
    /**
     * 请求 /hello  输出hello springboot!
     * @return
     */
    @RequestMapping(value = "/hello")
    public String hello(){
        return "hello springboot! demo2!";
    }
}

 

(3)测试a9213e803e3a49df8ebe1eabd5d16a6e.png

 

 

访问:http://locahost:8080/hello

 

8a79a08f847748f6af9dd54f5c86c95a.png

 

2.3 小结

  • 搭建SpringBoot环境有2种方式

    • Maven工程直接导包(手动在pom.xml中引入依赖:1.父工程 2.web起步包)

    • Spring Initializr方式(勾选起步包,自动引入依赖,同时自动创建启动类)

  • 使用SpringBoot,我们只用关注业务逻辑,而不用关注业务

  • 启动SpringBoot工程:直接启动启动类的主方法即可(默认集成了tomcat:8080)

 

 

  • 46
    点赞
  • 203
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值