作用

SpringBoot是为了简化Spring应用的创建、运行、调试、部署等等而出现的,使用它可以专注业务开发,不需要太多的xml的配置。

核心功能

1、内嵌Servlet容器(tomcat、jetty),可以以jar包的方式独立运行,无需以war包形式部署到独立的servlet容器中

2、提供很多的starter简化maven依赖配置

3、自动装配bean

4、提供使用java配置和注解配置,不建议xml配置

工程创建

使用IDEA:File-->New-->Project-->Spring Initializr,然后两次Next就可以了

SpringBoot必须使用JDK1.8以上

项目结构

 

 
 

src/main/java:业务代码

src/main/resources:配置文件

src/main/resources/static:静态资源如js、css、图片、html

src/main/resources/templates:模板文件

src/test/java:测试类

POM文件

	<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<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>

在创建好的SpringBoot工程中会自动引入两个starter,但是并没有定义版本号,这是由于SpringBoot版本号统一由父POM管理,原理和优点与Maven的父pom类似。

spring-boot-starter-parent就是父pom,它只是一个pom文件,并不是真正的jar包

但是spring-boot-starter-parent也没有定义具体的版本号,同时它也有一个父pom:spring-boot-dependencies:

    <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>

而在这个pom文件中则定义了springboot所有starter的版本号:

            <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>${antlr2.version}</version>
</dependency>

springboot一个重要的特性就是解决了所有依赖的版本问题,只需引入对应的starter即可。

在官网中我们可以去查找springBoot帮我们定义好的所有starter:有消息组件、AOP、ES、JDBC等等

SpringBoot初识的更多相关文章

  1. SpringBoot初识日志

    SpringBoot初识日志 1.市面上的日志框架: JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j- 日志门面(日志的抽象层) 日志实现 SLF4j ...

  2. SpringBoot初识(一)

    一.什么是SpringBoot 最近几年,微服务的概念越来越火.而相信大家在搜索微服务时,映入眼帘的首先就是SpringBoot以及SpringCloud.SpringCloud提供的一套完整的微服务 ...

  3. springboot 初识

    从实用主义来学习springboot的话,那我们期望的就是首先知道 1 他是个什么东西 2 我们为什么要用他,他能带来什么样的好处 3 如何快速上手 简单来讲,springboot你可以理解成spri ...

  4. SpringBoot(一) - SpringBoot 初识

    1.创建SpringBoot项目 1.1 使用Spring Initializr 的 Web页面创建项目 创建网址:https://start.spring.io/ 1.2 使用IDEA创建 省略: ...

  5. 26. SpringBoot 初识缓存及 SimpleCacheConfiguration源码解析

    1.引入一下starter: web.cache.Mybatis.MySQL @MapperScan("com.everjiankang.cache.dao") @SpringBo ...

  6. SpringBoot相知

    前言 这篇文章的将介绍表单验证,AOP处理请求和统一异常处理,案例是延续上一篇 SpringBoot初识 表单验证 现在将要拦截未满18岁的女生,在之前GirlController里面添加一个女生的方 ...

  7. 初识springboot(傻瓜式教程)

    初识springboot(傻瓜式教程) 项目所需的版本 IDEA 2018 maven 3.x jdk-1.8 IDEA创建spring-boot项目(maven方法) 1.创建一个maven工程 点 ...

  8. springboot(一).初识springboot以及基本项目搭建

    初识springboot 以及基本项目搭建 由于新的项目需要搭建后台框架,之前的springmvc架构也使用多次,在我印象中springboot的微服务架构更轻量级更容易搭建,所以想去试试spring ...

  9. 初识gradle, idea+springboot Demo

    写在前面; 使用maven管理写过几个springboot的系统, 此篇博客纯属记录整理学习的过程. 另外, 源码分享地址在最后. Java: 1.8.0_281 tomcat: 1.8 IDE: I ...

随机推荐

  1. Django的settings配置

    静态文件 STATIC_URL = '/static/' # 别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), os.path.join ...

  2. Actor模型和CSP模型的区别

    引用至:http://www.jdon.com/concurrent/actor-csp.html Akka/Erlang的actor模型与Go语言的协程Goroutine与通道Channel代表的C ...

  3. HDU - 4336 (容斥)

    题意:给你n个奖,每个机会只能中一个奖,中奖的概率分别是{p1,p2,p3......pn}:并且这些奖是两两没有交集.(pi*pj=0)问,需要多少次才能把所有奖都中完的期望值. 先来分析:中所有奖 ...

  4. Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)

    题意:a1=0;a2=1;a3=2; a(n)=a(n-1)+a(n-2)+a(n-3);  求a(n) 思路:矩阵快速幂 #include<cstdio> #include<cst ...

  5. go标准库的学习-encoding/json

    参考https://studygolang.com/pkgdoc 导入方式: import "encoding/json" json包实现了json对象的编解码,参见RFC 462 ...

  6. mascara-2(MetaMask/mascara本地实现)-连接线上钱包

    https://github.com/MetaMask/mascara (beta) Add MetaMask to your dapp even if the user doesn't have t ...

  7. scp传输文件的命令

    scp传输文件的命令 一:scp常规的使用方式: scp可以进行简单的远程复制文件的功能.它是一个在各个主机之间进行复制或文件传输的一个命令工具.它使用一种同ssh一样的安全机制来进行文件的传输. 注 ...

  8. 开放的dae模型

    从网上看到了这段代码,就Copy过来了. 其实面对dae这种开放的模型格式,我们可以做很多事情,就像通常的XML文件一样. //------------------------------------ ...

  9. java中的SHA单向加密

    SHA全名叫做安全散列算法,是FIPS所认证的安全散列算法.能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法.且若输入的消息不同,它们对应到不同字符串的机率很高. package ...

  10. docker load导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or directory

    今天将之前打包好的mysql5.7.19的tar包通过docker load命令导入到Docker环境中却报出了如下错误: [root@host---- task]# docker load < ...