Spring Boot 入门

2022年05月12日 阅读数:2
这篇文章主要向大家介绍Spring Boot 入门,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1.1 Spring 分析

  Spring 框架是 Java 平台上的一种开源应用框架,提供具备控制反转特性的容器。尽管 Spring 框架自身对编程模型没有限制,但其在 Java 应用中的频繁使用让它备受青睐,以致于后来让它做为 EJB(EnterpriseJavaBeans) 模型的补充,甚至是替补。Spring 框架为开发提供了一系列的解决方案,好比利用控制反转的核心特性,并经过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的 Web 框架方便开发等等。java

  随着使用 Spring 进行开发的我的和企业愈来愈多,Spring 也开始从一个简单的小框架逐渐发展为一个庞然大物。虽然 Spring 几乎可以完成任何事情,可是每当 Spring 集成一个开源软件,就须要额外增长一些配置,随着程序员开发的项目逐渐扩大,Spring 就须要集成更多开源软件,以致于在后期使用 Spring 开发大型项目时就须要引入海量配置文件,太多的配置不只很是难以让人理解,并且很是容易配置出错,后来 Spring 被程序员们称为配置地狱。程序员

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

  Spring Boot 让这一切成为了过去。
在这里插入图片描述




spring

1.2 Spring Boot 概述

  Pivota(Pivota 介绍) 也意识到了这些问题,迫切须要有一套方案能够解决这些问题,与此同时微服务也逐渐兴起并急速发展,快速开发微小、独立的应用也变得更为迫切,Spring 恰好处在这么一个转折点上。Pivotal 公司提供了一种全新的框架 Spring Boot,它简化了 Spring 应用的初始搭建以及开发过程,只须要“run”就能够很容易建立一个个独立运行、准生产级别的 Spring 应用。 Spring Boot 并非用来代替 Spring 的,而是与 Spring 框架紧密结合用来改善用户体验的工具。它还集成了大量经常使用的第三方库配置,Spring Boot 应用程序中的这些第三方库能够说是零配置的也就是说能够开箱即用,绝大多数的 Spring Boot 应用程序只须要编写很是少的 java 代码,这使开发人员可以将精力投入业务逻辑方面。编程

  由于 Spring Boot 使用了特定的方式来进行配置,因此开发人员不须要再定义格式化的配置。这种方法使 Spring Boot 在蓬勃发展的快速应用开发领域中独占鳌头。 Spring Boot 将不少魔法带入了 Spring 应用程序的开发之中,其中最重要的是如下四个核心。
 ♞ 自动配置:针对不少 Spring 应用程序常见的应用功能,Spring Boot 能自动提供相关配置。
 ♞ 起步依赖:告诉 Spring Boot 须要什么功能,它就能引入须要的库。
 ♞ 命令行界面:这是 Spring Boot 的可选特性,你只需写代码就能完成完整的应用程序,无需传
统项目构建。
 ♞ Actuator:让你可以深刻运行中的 Spring Boot 应用程序,一探究竟。
  Spring Boot 的出现,改变了 java 开发的困境,Spring Boot 最终奉行的宗旨:废除掉全部复杂的开发,废除掉全部的配置文件,让开发变得更简单纯粹,核心“零配置”。api

自动配置
  Spring Boot 会根据在类路径中的 jar 包、类,为jar包里的类自动配置 Bean,这样会极大地减小咱们要使用的配置。固然,Spring Boot 只是考虑了大多数的开发场景,并非全部场景,若在实际开发中,咱们须要自动配置 bean,而 Spring Boot 没有提供支持,则能够自定义自动配置。restful

起步依赖
  Spring Boot 经过提供众多起步依赖下降项目依赖的复杂度。起步依赖本质上是一个 Maven 项目对象模型,定义了对其余库的传递依赖,这些东西加在一块儿即支持某项功能。不少起步依赖的命名都暗示了他们提供的某种或某类功能。app

命令行界面
  为了简便起见,Spring Boot 提供了命令行界面,能够用来运行和测试 Spring Boot 应用。框架

Actuator
  Actuator 是 spring boot 项目中很是强大的一个功能,有助于对应用程序进行监控和管理,经过 restful api 请求来监管、审计、收集应用的运行状况,针对微服务而言它是必不可少的一个环节。svg





1.3 建立一个 Spring Boot 项目

1.3.1 Maven

☞ 建立一个 Maven 项目

 此处不用选择骨架,点击 Next 下一步填写项目信息,填写完毕后点击 Finish 完成建立
在这里插入图片描述
在这里插入图片描述

☞ 添加依赖

<!-- SpringBoot 要求,项目要继承 SpringBoot 的起步依赖 spring-boot-starter-parent -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
</parent>

<dependencies>
	<!-- SpringBoot 要集成 SpringMVC 进行 Controller 的开发,因此项目要导入 web 的启动依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

☞ 编写引导类

 要经过 SpringBoot 提供的引导类起步 SpringBoot 才能够进行访问,这里就再也不演示启动和访问了,下面一个再演示,都是同样的。

// 标注 SpringBoot 的启动类,该注解具有多种功能
@SpringBootApplication
public class App {
   
   
    public static void main(String[] args) {
   
   
    	//  表明运行 SpringBoot 的启动类,参数为 SpringBoot 启动类的字节码对象
        SpringApplication.run(App.class);
    }
}

1.3.2 Spring Initializr

 选择使用 Spring Initializr 建立项目(此种方式实际上都借助了 https://start.spring.io/ 这个网站),点击 Next 下一步填写相关信息
在这里插入图片描述
在这里插入图片描述

 再下一步,选择须要用到的依赖,这里只选一个 web,而后一路 Next 将项目建立完毕。
在这里插入图片描述
 会自动帮咱们呢将以前选择的依赖导入,同时写好启动类。咱们的业务逻辑写在 java 文件夹下,资源文件放到 resources 下。测试代码能够写道 test 文件夹下。
在这里插入图片描述
 写一个 controller 来看看 Spring Boot。懒得从新写一个 controller 了,直接把启动类改吧改吧,来访问看看效果。

@SpringBootApplication
@RestController
public class DemoApplication {
   
   

    public static void main(String[] args) {
   
   
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/getMsg")
    public String getMsg() {
   
   
        return "Spring Boot!";
    }
}

 修改好以后直接启动(运行启动类便可),能够看到 Spring 的 logo,再下方能够看到使用的端口号,咱们用这个端口访问一下写好的服务。
在这里插入图片描述
在这里插入图片描述