SpringBoot(2.1.9.RELEASE)快速入门

一、SpringBoot简介

  Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

解决:

  • "Spring全家桶" 时代。

  • SpringBoot --> J2EE一站式解决方案。

  • SpringCloud --> 分布式整体解决方案。

特性:

  • 快速创建独立运行的 Spring 应用程序。

  • 直接嵌入式的 Tomcat、Jetty 或 Undertow,无需部署WAR包文件。

  • 提供各种 “starter(启动器)” 依赖关系,以简化构建配置。

  • 大量的自动配置,简化开发,也支持修改默认值。

  • 提供可用于生产环境的特性,例如度量指标、健康检查和外部化配置。

  • 完全不需要代码生成,也不需要XML配置。

 

二、准备工作

学习前必须掌握以下内容:

  • Spring 框架的使用经验

  • 熟练使用 Maven/Gradle 进行项目构建

  • 熟练使用 IDEA 和 Eclipse

环境约束:

  • Jdk1.8

  • Gradle 4.10

  • IntelliJ IDEA 2020

  • Spring Boot 2.1.9.RELEASE

系统要求:虽然你可以在Java 6或7上使用 Spring Boot,但是建议用Java 8。

 

三、使用Spring Initializr初始化SpringBoot项目

  万事开头难,你需要设置一个目录结构存放各种项目内容,创建构建文件,并在其中加入各种依赖。如果你倾向于传统 Java 项目结构,可以去看看 Spring Initializr。 Spring Initializr 从本质上来说就是一个Web应用程序,它能为你生成 Spring Boot 项目结构。虽然不能生成应用程序代码,但它能为你提供一个基本的项目结构,以及一个用于构建代码的Maven或Gradle构建说明文件。你只需要写应用程序的代码就好了。

最常用的 Spring Initializr 有以下两种用法:

  • 通过Web界面使用。

  • 通过IntelliJ IDEA使用。

1.使用Spring Initializr的Web界面

要使用 Spring Initializr,最直接的办法就是用浏览器打开 https://start.spring.iohttps://start.aliyun.com,你应该能看到类似下图的表单。

Alibaba 构建项目官方版:

Spring 构建项目官方版:

  表单的头三个问题是,你想用 Maven 还是 Gradle 来构建项目,选择什么样的语言开发,以及使用 Spring Boot 的哪个版本。程序默认生成 Maven 项目,我使用的是 Gradle 方式构建,并使用 Spring Boot 的最新版本,但你也可以自由选择其他选项。

表单左侧 Project Metadata 要你指定项目的一些基本信息。最起码你要提供项目的 Group 和 Artifact,分别是项目组(公司域名)Name 与 Artifact 是项目名称两者意思相同,Description 是项目描述信息可选,Package name 是包名,这些信息是用来生成 Maven 的 pom.xml 文件或者 Gradle 的 build.gradle 文件的。

填完表单,选好依赖,点击 “Generate Ctrl” 按钮,Spring Initializr 就会为你生成一个项目。浏览器将会以ZIP文件的形式(文件名取决于 Artifact 字段的内容)把这个项目下载下来。根据你的选择,ZIP文件的内容也会略有不同。不管怎样,ZIP文件都会包含一个极其基础的项目,让你能着手使用 Spring Boot 开发应用程序。

举例来说,假设你在 Spring Initializr 里指定了如下信息。

  • Artifact:springboot-learning

  • 包名:org.wesson.springboot.study

  • 类型:Gradle项目

  • 依赖:Spring Web

点击“Generate Ctrl”,就能获得一个名为springboot-learning.zip的ZIP文件。解压后的项目结构如下图:

如你所见,项目里基本没有代码,除了几个空目录外,还包含了如下几样东西。

  • Application.java:一个带有main()方法的类,用于引导启动应用程序。

  • ApplicationTests.java:一个空的JUnit测试类,它加载了一个使用Spring Boot自动配置功能的Spring应用程序上下文。

  • build.gradle:Gradle 构建说明文件。如果选择 Maven 项目,这就会换成 pom.xml。

  • application.properties:一个空的properties文件,你可以根据需要添加配置属性。

在 Spring Boot 应用程序中,就连空目录都有自己的意义。static 目录放置的是 Web 应用程序的静态内容(JavaScript、样式表、图片,等等)。还有用于呈现模型数据的模板会放在 templates 目录里。

2.在IntelliJ IDEA里创建SpringBoot项目

要在 IntelliJ IDEA 里创建新的 Spring Boot 应用程序,在 File 菜单里选择 New > Project。你会看到几屏内容,问的问题和 Initializr 的 Web 应用程序类似。

  首先显示的是 Spring Boot 初始化向导的第一屏内容中,在左侧项目选择里选中 Spring Initializr,随后会提示你选择一个 Project SDK(选择 Java Jdk 版本),同时选择 Initializr Web 服务的位置,选择 Default 默认即可,直接点击 Next 按钮:

接着显示的是 Spring Boot 初始化向导的第二屏内容,要求你提供项目的一些基本信息,比如项目名称、Group 和 Artifact、Java 版本、Package 包名,以及你是想用 Maven 还是 Gradle 来构建项目。描述好项目信息之后,点击 Next 按钮:

然后显示的是 Spring Boot 初始化向导得到第三屏内容,这里你可以选择要往项目添加什么样的依赖。和之前一 样,屏幕里的复选框和 Spring Boot 起步依赖是对应的。选完之后点击 Next 即可:

最后一屏问你项目叫什么名字,还有要在哪里创建项目。一切准备就绪之后,点击 Finish 按钮,就能在 IDEA 里得到一个空的 Spring Boot 项目了:

 

四、永远的Hello World

1.新建Module

上面已经创建过父级项目工程了,了解过 Spring Boot 工程目录后,父级项目中的 src 目录就可以删除了:

在以后的学习中,我们使用 IntelliJ IDEA New 一个 Module 子项目名叫 springboot-hello 进行编写代码:

2.build.gradle项目依赖

引入spring-boot-starter-web依赖:使用Spring MVC构建Web(包括RESTful)应用程序的入门程序。使用Tomcat作为默认的嵌入式容器

plugins {
    id 'org.springframework.boot' version '2.1.9.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'org.wesson.springboot.hello'
version = '1.0.0'
sourceCompatibility = '1.8'

repositories {
    maven {
        // 指定阿里云远程仓库的位置,能够加快导入第三方jar包速度
        url = "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    mavenCentral()
}

dependencies {
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
    testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test'
}

3.启动类SpringbootHelloApplication.java

@SpringBootApplication 核心注解含义:该注解标记当前".java"不仅是启动引导类,也是配置类,说明这是一个Spring Boot应用程序。

package org.wesson.springboot.hello;

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

/**
 * @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan
 */
@SpringBootApplication
public class SpringbootHelloApplication {

    public static void main(String[] args) {
        // 负责启动Spring引导应用程序
        SpringApplication.run(SpringbootHelloApplication.class, args);
    }

}
View Code

我们一起来复习一下之前 SSM 框架的三个注解吧,看看大家还能想起来多少:

  • @Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法。

  • @EnableAutoConfiguration:开启Spring Boot自动配置的机制。

  • @ComponentScan:开启@Component对应用程序指定包下注解(@Repository、@Service、@Controller)进行Spring组件扫描。

4.Controller

package org.wesson.springboot.hello.controller;

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

/**
 * @RestController = @Controller + @ResponseBody
 */
@RestController
@RequestMapping("/demo")
public class HelloController {

    /**
     * @GetMapping = @RequestMapping(method = RequestMethod.GET),method:指定请求的方法类型(GET,POST,PUT,DELETE)等。
     */
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }

}
View Code

5.测试

运行一个名叫 SpringbootHelloApplication.java 的启动类,可以一起来看以下内嵌式的 Tomcat 运行效果,控制台默认显示8080端口号:

浏览器访问 http://localhost:8080/demo/hello 请求,输出结果如下:

 

五、什么是SpringBoot启动器

  启动器(Starters)是一套非常方便的依赖管理工具,它能够让你在自己的应用程序中包含它们。你可以获得一个一站式的 https://mvnrepository.com Maven 仓库网址,里面有你需要的所有 Spring 和相关技术。只要是创建 Spring Boot 项目,你所需要的第三方 Jar 包都能够从该官网上找到,比如下面搜索一个 spring web 依赖:

由于现在学习的是 Spring Boot,就选择 Spring Boot Web Starter 启动器,点进去之后你就能看到发布的所有版本号了:

我使用的 Spring Boot 版本号是 2.1.9.RELEASE,个人觉得还是挺稳定的。黄色圈下面的菜单你就能够看到 Maven 与 Gradle 的依赖资源了:

所有启动器都遵循类似的命名方式:spring-boot-starter-*,其中*是特定类型的应用程序(也可以说是你所需要引入的某某技术)。这个命名结构是为了在你需要查找启动器时提供帮助。更多详细的 Spring Boot 常用启动器请参考官方文档:Starters

Java 学习到这个阶段,自己还不会创建项目和查找依赖的话就实在有点说不过去了!!!

 
posted @ 2020-05-19 23:18  wessonshin  阅读(888)  评论(0编辑  收藏  举报