推荐阅读:

我们为什么要学习 Spring Boot

我们搭建 Spring Boot 项目,可以使用 Spring 为我们提供的初始化网站,那个可能不太方便,今天呢,我们就来说说如何使用 IDEA 来初始化我们的 Spring Boot 项目并分析一下这个 demo 。

这里说一句,能够初始化 Spring Boot 的 IDEA 是有版本要求的,最低版本是 14.1。

下面就是操作的步骤,全是图片,请各位做好警戒。

1、选择 File - New - Project - Spring Initializr

2、 可以修改一下包名、打包方式、Java 版本等信息。

3、选择 Web,其它的现在还不了解。

4、 配置一下项目路径

finish 之后就会看到新建的项目有 pom.xml 文件,main 入口还有一个空的 application.properties 文件。待会我们一个一个的说,先把项目跑起来再说。

在跑起来之前,我们添加一个类用来测试看效果。如下所示,添加一个 Example 文件。

好了,现在就说说如何启动项目,第一种方式,使用 Maven 命令打包,然后执行 jar 包。

打好的 Jar 包在 target 中,在 Terminal 中进入目录使用 java -jar 命令执行即可。当然,你也可以在 DOS 中执行这个 Jar 包。

第二种方式,使用插件命令直接执行。我们也可以直接在 Terminal 中输入 mvn spring boot:run 一样的效果(可以在 pom.xml 中看到引用的插件)。

第三种方式,右击 run 即可。

好了,上面说了这么多,每一种方式都是可行的,访问 localhost:8080 即可看到 Hello World!

OK ,下面就分析一波组成 demo 的各个部分。

pom.xml 文件

我们之前就说过 Spring Boot 的一个优点就是依赖管理变的简单,具体看看都提供了什么。

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

首先 pom 文件中提供了父级依赖的概念,这个依赖是 Spring Boot 项目的标识,spring-boot-starter-parent 是一个特殊的 starter,它用来提供 Maven 默认依赖,而且有了它,我们也不需要为不同的依赖添加版本信息。

当然我们可以重写某个依赖的版本,但是不建议这样做,可能就会和其它 jar 包不兼容了。假如在自己公司维护的有一套依赖关系,我们也可以不用父级依赖,也可以只使用其中的一部分依赖,借助于关键字 import 实现。但是,实际中应该是默认的居多。

pom 中还给我们定义了很多的 “starter” 每一个 starter 就像一个包一样,这其中包含的是一个模块的依赖,举例看看 spring-boot-starter-web 这个起步依赖内部就依赖了其它的依赖,这样我们 pom 文件就省心简洁多了。

另外 pom 文件中还包含插件,这里 pom 文件中只能看到一个 maven 插件,其实还有一些插件已经放在父级依赖中了。

启动类,Demo2Application.java ,这里是程序的入口,我们刚刚也可以执行这个类,但是执行之后就结束了,因为这里面没有映射的路径信息,我们也可以把 Example 中的方法放在这个启动类中并添加相应的注解,也是可行的。

最后,这个 demo 中还涉及到几个注解,挨个说一下。

@SpringBootApplication 作用有三点

1、启动 Spring Boot 的自动配置机制,作用等同于 @EnableAutoConfiguration 。

2、扫描包及其子包下的组件,作用等同于 @ComponentScan 。

3、允许在上下文中注册额外的 Bean 或导入额外的配置类,等同于 @Configuration 。

所以,@SpringBootApplication 以一抵三,非常重要的,最后,还涉及到一个注解 @RestController,这个就是 @Controller 和 @ResponseBody 的合体。

OK,到此我们的 Spring Boot 入门 demo 就算讲解完毕。是不是感觉注解老多,其实 Spring Boot 新创的注解不算多,好多都是从 Spring MVC 那里拿过来的,不要怂,就是干!

Spring Boot 入门详细分析的更多相关文章

  1. 黑马_13 Spring Boot:01.spring boot 介绍&&02.spring boot 入门

    13 Spring Boot: 01.spring boot 介绍&&02.spring boot 入门 04.spring boot 配置文件 SpringBoot基础 1.1 原有 ...

  2. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  3. Springboot 系列(一)Spring Boot 入门篇

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 由于 J2EE 的开发变得笨重,繁多的配置, ...

  4. spring boot入门教程——Spring Boot快速入门指南

    Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...

  5. Spring Boot入门系列(十三)如何实现事务

    前面介绍了Spring Boot 中的整合Mybatis并实现增删改查.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1 ...

  6. Spring Boot 入门(十三):集成Hasor的Dataway模块,干掉后台,自动配置接口

    终于出湖北了,封闭2个月,家里没电脑,感觉好久没自主撸代码啊啊啊啊啊啊啊啊啊啊啊啊啊. 连接上篇文章Spring Boot 入门(十二):报表导出,对比poi.jxl和esayExcel的效率,继续从 ...

  7. Spring Boot入门系列(十六)使用pagehelper实现分页功能

    之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.接下来要说一说Mybatis 的分页 ...

  8. Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!

    之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mappe ...

  9. Spring Boot入门学习

    1. Spring Boot概述 1.1.什么是Spring Boot SpringBoot是一个可使用Java构建微服务的微框架.是Spring框架及其社区对"约定优先于配置"理 ...

随机推荐

  1. mysql 案例 ~ pt-archiver 归档工具的使用

    一 简介:今天咱们来聊聊pt-archiver的使用 二 相关参数 相关参数1   --statistics 结束的时候给出统计信息:开始的时间点,结束的时间点,查询的行数,归档的行数,删除的行数,以 ...

  2. 在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错

    在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错,如何解决 控制器代码如下: // // ViewController.m // 02-模型中的赋值 // // Cre ...

  3. 深层揭密extern "C"

    一. extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的:其次,被它修饰的目标是“C”的.让我们来详细解读这两重含义. (1) 被ext ...

  4. log4j2使用入门(二)——与不同日志框架的适配

    在之前博客中已经指出log4j2可以与不同的日志框架进行适配,这里举一些实际应用进行说明: 1.比如我们在项目中使用了log4j2作为日志器,使用了log4j-api2.6.2.jar和log4j-c ...

  5. camera驱动框架分析(上)【转】

    转自:https://www.cnblogs.com/rongpmcu/p/7662738.html 前言 camera驱动框架涉及到的知识点比较多,特别是camera本身的接口就有很多,有些是直接连 ...

  6. Linux中 Lua 访问Sql Server的配置方法

    一.背景说明: 通过lua脚本实现对SQL Server数据库的操作. 二.具体设定: 安装流程图:如果是使用Lua连接SQL Server,从上到下则需要安装lua -> luaSQL-ODB ...

  7. DDMS调试工具

    ADT给我们提供了一个非常方便的调试工具,那就是DDMS.使用这个工具,代码调试工作也变得简单起来.我们只需要单击Eclipse界面右上方的DDMS按钮就可以切换到DDMS界面了,如图2-31所示. ...

  8. Java基础:整型数组(int[]、Integer[])排序

    Windows 10家庭中文版,java version "1.8.0_152",Eclipse Oxygen.1a Release (4.7.1a), 参考链接:http://w ...

  9. Android设计模式-观察者模式

    原文地址 http://blog.csdn.net/qq_25806863/article/details/69218968 观察者模式是一种使用频率非常高的设计模式,最常用的地方就是订阅-发布系统. ...

  10. Ext.util.Format.date与Ext.Date.format区别, 转换时间戳

    在Extjs中装时间戳使用如下两种都可以: Ext.util.Format.date(time,'U'); Ext.Date.format(time, 'U'); 为了找到它们的区别,查看源代码,以E ...