推荐阅读:

我们为什么要学习 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. Biorhythms HDU - 1370 (中国剩余定理)

    孙子定理: 当前存在三个式子,t%3=2,t%5=3,t%7=2.然后让你求出t的值的一个通解. 具体过程:选取3和5的一个公倍数t1能够使得这个公倍数t1%7==1,然后选取3和7的一个公倍数t2使 ...

  2. Informatic学习总结_day02

    1.sort组件(排序) 2.aggregater组件  聚集组件  sum   如果不排序,去做汇总的话,一个大的session 运行起来会很慢 3.join控件  连接组件 对于异构的数据源,一个 ...

  3. bat判断ini文件内容

    @echo off for /f "tokens=1" %%d in (config.ini) do ( if /I "%%d" equ "path= ...

  4. curl, wget常用选项

    使用指定的http代理,配合md5sum 对于检查源站与cdn节点资源是否一致很有效 curl -o a.jpg -x http://pbcdn.xximg1.com/v6/global2015/im ...

  5. 一台电脑,两个及多个git账号配置

    1. 生成两[三]个ssh公钥私钥 方法参照:http://www.cnblogs.com/fanbi/p/7772812.html第三步骤 假定其中一个是id_rsa, 另一个时id_rsa_two ...

  6. 关于学生成绩查询的几个SQL语句

    数据库有三个字段,名字.学科.成绩,如图 1. 找出每科成绩最高的学生的名字与分数 2.找出总分最高的学生名字与总分 3.找出三科成绩均大于80分的学生

  7. 关卡得分(if 嵌套for)与(for嵌套if)

  8. OneNET麒麟座应用开发之十:空气质量数据监测站项目总结

    大气质量数据监测站用于测试空气质量监测及数据采集,实现野外或者室内空气质量的检测. 1.项目概述 本项目是一个定制项目,要求采集大气的压力.温度.湿度.PM25.位置等数据并上传到指定的后台服务器.但 ...

  9. Windows Server 2003 R2标准版 SP2 64位 (简体中文)官方原版ISO镜像

    Windows Server 2003 R2标准版 SP2 64位 (简体中文)官方原版ISO镜像迅雷下载   软件简介 Windows Server 2003 R2标准版是继Windows Serv ...

  10. OCM_第一天课程:OCM课程环境搭建

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...