Spring boot框架快速入门

Spring Boot是又Pivotal 团队提供的全新框架,其设计的目的是用来简化新Spring的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使得开发人员不在需要定义模板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者 - 《百度百科:Spring Boot》

在这里插入图片描述
Spring Boot是所有基于Spring Framework 5.0开发的项目的起点。Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件。

Spring Boot的设计目的很直观,就是为了简化新的Spring应用的初始搭建以及开发过程。

从最根本上来说,Spring Boot并不是新的框架,而是提供了默认配置的很多框架的集合。它能够在构建任意项目的时候使用,并且基本不需要进行配置。Spring Boot遵循使用优于配置的理念来使得你的项目能够快速运行起来,而不必花大量时间在代码生成和XML强制配置上。

Spring构建的项目存在大量的配置,但这里配置都包含一个默认的习惯性配置。如果你修改了Spring Boot的全局配置文件,你相当于是在修改默认配置的配置值。

Spring Boot 特点

(1) 为所有Spring开发提供一个更快更广泛的入门体验。
(2) 零配置。无冗余代码生成和XML强制配置,遵循约定大于配置
(3) 集成了大量常用的第三方库及其配置。Spring Boot为这三第三方库提供了不需要配置的开箱即用的能力。
(4) 提供一系列大型项目常用的非功能特性,如嵌入式服务器安全性度量运行状况检查外部化配置等。
(5) Spring Boot不是Spring的替代者,Spring框架是通过IOC机制来管理Bean的。Spring Boot依赖Spring框架来管理对象依赖。Spring Boot并不是Spring的精简版,而是做好了各种产品级应用准备的Spring。

Spring Boot 所具备的特征

(1) 可以创建独立的Spring程序,并且基于Maven或Gradle插件,可以创建可执行的JARs和WARs。
(2) 内嵌Tomcat或者Jetty等Servlet等容器。
(3) 提供自动配置的starter项目对象模型(POMS)以简化Maven配置。
(4) 尽可能自动配置Spring容器。
(5) 提供准备好的特性,如指标健康检查外部化配置。
(6) 绝对没有代码生成,不需要XML配置。

Spring Boot在应用中的角色

基于Spring Framework,用于构建Spring Cloud。

Spring Boot是基于Spring Framework来构建的,Spring Framework是一种J2EE框架。

Spring Boot可以快速构建Spring 应用。
Spring Cloud是构建好的Spring Boot分布式环境,即云应用。
Spring是两者的中流砥柱,起到了承上启下的作用。
在这里插入图片描述

环境准备

  • JDK 1.8及以上
  • Maven管理工具
  • IDE

Mave英文译为"专家",是Apache下的一个纯Java开发的开源项目。基于项目对象模型(POM)的概念,它利用一个中央信息片段来管理一个项目的构建、报告和文档等步骤。

Maven是一个项目管理工具,可以对Java项目进行构建、依赖管理。

Spring Boot项目文件

pom.xml

默认的pom.xml长这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xpwi</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

其中<parent>标签比较陌生,它配置的是Spring Boot的父依赖,有了<parent>标签,当前项目才是Spring Boot项目。spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖。在加上它之后,常用的包依赖就可以省略掉version标签。

Spring Boot所提供的jar包依赖可以在本地Maven仓库下的repisitory\org\springframework\boot\spring-boot-dependencies\2.1.0RELEASE\spring-boot-dependencies-2.1.0.RELEASE.pom文件中查看。

应用入口类SpringBootApplication.java

Spring Boot项目通常会有一个名为SpringBootApplication的入口类,它有一个main方法,该方法即为标准的java应用的入口方法。

@SpringBootApplication是Spring的核心注解,它是一个有三个注解组成的组合式注解。这三个注解包括:

  • @Configuration
  • @EnableAutoConfiguration
  • @ComponentScan

三者的作用如下:

  • @Configuration同Spring,用来定义配置类,可替换XML配置。
  • @EnableAutoConfiguration让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置。
  • @ComponentScan同Spring,从定义的扫描路径中找出标示了需要装配的类自动装配到bean容器中。

SpringBoot还会自动扫描@SpringBootApplication所在类的同级包以及下级包里的bean。因此入口类建议配置在groupID+artifactID组合的包名下。

Spring配置文件

SpringBoot支持properties文件和yaml语言两种配置文件。SpringBoot使用两者之一作为全局配置文件。

yaml是以数据为中心的语言,在配置数据的时候具有面向对象的特征。

重复一点,Spring Boot全局配置文件的作用是对一些默认配置的配置值进行修改。

参考

Spring Boot -01- 快速入门篇(图文教程)

posted @ 2020-10-12 21:17  从流域到海域  阅读(94)  评论(0编辑  收藏  举报