原文:https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#getting-started-introducing-spring-boot


Spring Boot 是什么

Spring Boot 是基于 Spring 的应用程序,对 Spring 和 一些第三方库进行封装,便于程序员快速创建可以单独运行的项目;

官网重点标识:绝对没有代码生成,也不需要XML配置

从这,我们也可以看出 ,Spring Boot 是的一大目标就是解决以前 Spring 的那些繁琐的配置的 ;

就记住是一个更牛,更厉害的框架 ;


系统要求

我使用的 Spring Boot 版本是 Spring Boot 2.1.3.RELEASE

要求:

JDK8 +

Maven 3.3+

否则下面安装将会失败;


Servlet 容器

Spring Boot 内置了 Tomcat ,目前我使用的版本 2.1.3 CURRENT,内置的 Tomcat 版本是 9.0

当然也可以将 Spring Boot 项目打包发布到 Servlet 3.1+ 的服务器上 ;


Maven方式安装Spring Boot

pom 文件 :

<?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.example </groupId>
<artifactId> myproject </artifactId>
<version> 0.0.1-SNAPSHOT </version> <! - 继承默认值为Spring Boot - >
<parent>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-parent </artifactId>
<version> 2.1.3.RELEASE < /version>
</parent> <!-- 添加Web应用程序的典型依赖项 - >
<dependencies>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
</依赖> <! - 打包为可执行jar ,可选插件,只是打包,不影响执行 - >
<build>
<plugins>
<plugin>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-maven-plugin </artifactId>
</plugin >
</plugins>
</ build> </project>

这里使用了 parent 标签引入 spring-boot-starter-parent ,是使用 Spring Boot 的一个好方法,但是有时候,可能需要从不同的父级 pom 继承,或者需要使用公司的标准父级pom

或者不想使用 spring-boot-starter-parent 默认配置,它是一个特殊的启动器,,可以使用下面的方式进行特殊的配置 ;

添加如下依赖项,替换掉 parent 标签:

<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

然后你想覆盖掉谁,你就在 <dependencies> 里面写出来,但是要写在 org.springframework.boot 前面,以进行属性的覆盖,比如下面想要使用Spring Data的另外一个版本:

 <dependencyManagement>
<dependencies>
<!-- 覆盖Spring Boot提供的Spring Data版本系列 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

编写第一个 Spring Boot 项目

pom文件,就使用上面提到的默认的就好了;

编写一个 java 类:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*; @RestController
@EnableAutoConfiguration
public class Example { @RequestMapping("/")
String home() {
return "Hello World!";
} public static void main(String[] args) {
SpringApplication.run(Example.class, args);
} }

首先是 @RestController 注解,是一个构造型注解,用于告诉阅读代码的人以及 Spring 这是一个处理器;

@RequestMapping("/") 不是什么新鲜注解了,就不用说了;

重点说下 @EnableAutoConfiguration 这是一个新注解,它用于告诉 Spring Boot 进行猜测你想要什么类型的 Spring 配置,猜测的根据是你在 POM文件添加哪些 Jar包配置,比如我们这里仅仅添加了 spring-boot-starter-web

<!-- 添加Web应用程序的典型依赖项 - >
<dependencies>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
</依赖>

那么,Spring Boot 将添加 Tomcat SpringMvc 进来,并进行相应的 Spring 配置,方便的很啊,这也是为啥 Spring Boot 不需要我们自己配置 Tomcat 的原因;

最后的 main() 方法,是启动入口,都是一些 Spring Boot 的非必需了解知识了,只要记住,传入两个参数,本class类 and main方法参数

最后启动,在浏览器里面输入 localhost:8080 即可看到 Hello World! ;

(二)Spring Boot 官网文档学习之入门的更多相关文章

  1. (五)Spring Boot官网文档学习

    文章目录 SpringApplication SpringApplication 事件 `ApplicationContext ` 类型 访问传递给 `SpringApplication` 的参数 A ...

  2. (四)Spring Boot官网文档学习

    文章目录 关于默认包的问题 加载启动类 配置 Bean管理和依赖注入 @SpringBootApplication Developer Tools 关于 Developer Tools 的一些细节 原 ...

  3. (三)Spring Boot 官网文档学习之默认配置

    文章目录 继承 `spring-boot-starter-parent` 覆盖默认配置 启动器 原文地址:https://docs.spring.io/spring-boot/docs/2.1.3.R ...

  4. Spring Security 官网文档学习

    文章目录 通过`maven`向普通的`WEB`项目中引入`spring security` 配置 `spring security` `configure(HttpSecurity)` 方法 自定义U ...

  5. Spring3.0官网文档学习笔记(二)

    1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包)     spring-*.jar *号代表 ...

  6. Spring3.0官网文档学习笔记(八)--3.4.3~3.4.6

    3.4.3 使用depends-on     使用depends-on能够强制使一个或多个beans先初始化,之后再对这个bean进行初始化. 多个bean之间用","." ...

  7. Spring3.0官网文档学习笔记(一)

    Part 1 Spring框架概述 Spring是模块化的,在应用中仅仅须要引入你所须要用到的模块的jar包,其余的jar包不用引入. spring框架支持声明式的事务管理,通过RMI或web ser ...

  8. Spring3.0官网文档学习笔记(七)--3.4.2

    3.4.2 依赖与配置的细节     3.4.2.1  Straight values (primitives, Strings, and so on)     JavaBeans PropertyE ...

  9. Spring3.0官网文档学习笔记(四)--3.1~3.2.3

    3.1 Spring IoC容器与Beans简单介绍     BeanFactory接口提供对随意对象的配置:     ApplicationContext是BeanFactory的子接口.整合了Sp ...

随机推荐

  1. 搭建K8S集群

    一.前言 我们将现有的虚拟机称之为Node1,用作主节点.为了减少工作量,在Node1安装Kubernetes后,我们利用VirtualBox的虚拟机复制功能,复制出两个完全一样的虚拟机作为工作节点. ...

  2. js检测手机上是否有此APP,有的话打开应用,没有的话跳转到appstore

    //html代码中 的 a 标签,以微信为例,默认的是调用weixin scheme,去打开本机的微信,如果没有则跳转到相应连接 <a href="weixin://" cl ...

  3. C图形化第一步

    之前的贪吃蛇都是在cmd下实现,每次都要调用cls刷新屏幕,简直是闪瞎了我的狗眼. 度娘得知有一种方法可以避免闪烁,即:双缓冲.原理是先在内存中作图,然后将做好的图复制到前台,同时禁止背景刷新. 主要 ...

  4. 夺灵者哈卡(Hakkar, the Soulflayer)

    Hakkar, the Soulflayer夺灵者哈卡Deathrattle: Shuffle a Corrupted Blood into each player's deck.亡语:将一张“堕落之 ...

  5. delphi 运算符重载

    譬如上面的 record 可以这样声明: type   TMyRec = record     name: string;     age: Word;     class operator Grea ...

  6. GWAS 全基因组关联分析 | summary statistic 概括统计 | meta-analysis 综合分析

    有很多概念需要明确区分: 人有23对染色体,其中22对常染色体autosome,另外一对为性染色体sex chromosome,XX为女,XY为男. 染色体区带命名:在标示一特定的带时需要包括4项:① ...

  7. Sqlmap全参数详解

    sqlmap全参数详解 sqlmap是在sql注入中非常常用的一款工具,由于其开源性,适合从个人到企业,从学习到实战,各领域各阶段的应用,我们还可以将它改造成我们自己独有的渗透利器.这款工具中,大大小 ...

  8. vue.js的app.js太大怎么优化?

    vue.js的app.js太大怎么优化? # http://nginx.org/en/docs/http/ngx_http_gzip_module.htmlgzip on;gzip_min_lengt ...

  9. 分析imx8mm-evk评估板的pinctrl设备树

    1. 分析arch/arm64/boot/dts/freescale/imx8mm-evk.dts中的i2c3相关的pinctrl_i2c3节点 pinctrl_i2c3: i2c3grp { fsl ...

  10. Java基础 main 参数String[] args的用法

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...