说在最前

此篇文章,为Spring Boot理论骗,所谓的理论篇就是几乎不会出现代码,只介绍一些理论知识,这些理论知识对你你以后快速上手Spring Boot有非常大的用处!

什么是Spring Boot

Spring Boot是spring项目中的一个子项目,其实人们把Spring Boot称为搭建项目的脚手架,其最主要作用是让我们快速的搭建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,快速上手,让我们关注业务而非配置!

为什么要用SpringBoot

这里就要说下SpringBoot的优点了!

一 独立运行

  • Spring Boot内嵌了各种servlet容器,tomcat,jetty等,使我们不在需要打包成war包部署分容器中,Spring Boot只要打包成一个可执行的jar包,就能独立运行,所有的依赖包都在一个jar包内。

二 简化配置

  • spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。

三 自动配置

  • Spring Boot能根据当前类路径下的类,jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无序其他配置。

四 无代码生成和xml配置

  • Spring Boot配置过程中无代码生成,也无需要xml配置文件就行完成所有的配置工作,这一切都是借助于条件注解完成的这也是spring4.x的核心功能之一。

五 应用监控

  • Spring Boot提供一系列断点可以监控服务及应用,做健康监测。

SpringBoot的核心注解

启动类上面的注解是@SpringBootApplication,他也是SpingBootDE 核心注解,主要包含了一下三个注解

  • @SpringBootConfiguration:组合@Configuration注解,实现配置文件的功能。
  • @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
  • @ComponentScan:Spring组件扫描,从当前类所在的包以及子包扫描,之外的包扫不到,所以在开发的时候,所有的类都在主类的子包下。

SpringBoot运行方式

1.打包用命令或者放到容器中运行

2.用Maven/Gradle 插件运行

3.直接执行main方法运行

SpringBoot自动配置原理

这个就得从springboot项目的核心注解@SpringbootApplication说起了,这个注解包含了三个注解,其中一个是@EnableAutoConfiguration注解,这个注解主要是开启自动配置的,这个注解会"猜"你将如何配置 spring,前提是你已经添加 了 jar 依赖项,比如项目中引入了 spring-boot-starter-web ,这个包里已经添加 Tomcat 和 SpringMVC,这个注解节就会自动假设您在开发一个 web 应用程序并添加相应的 spring 配置,springboot默认有一个spring-boot-autoconfigure包,大多数常用的第三方的配置都自动集成了,像redis、es等,这里边有一个META-INF/spring.factories文件,这里边定义了所有需要加载的bean的全路径,spring会根据反射的原理,创建这些对象,放到IOC容器中,加载时需要的参数,通过JavaConfig的方式加载配置文件中的参数然后创建了对应的对象,这就是自动配置的原理

说在最后

以上只是让你对SpringBoot有个基本的理解,所有框架在上手之前,先去了解一个框架是干什么的,如何干的,有什么好处,会对你以后上手,有非常大的帮助,这些理论在以后的实战篇都会再次深入的介绍。

作者:泪梦红尘

转载地址:http://www.lmhc.blog/article/10

SpringBoot快速入门(理论篇)的更多相关文章

  1. SpringBoot学习(四)-->SpringBoot快速入门,开山篇

    Spring Boot简介 Spring Boot的目的在于创建和启动新的基于Spring框架的项目.Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合.大部分Spring ...

  2. Springboot快速入门篇,图文并茂

    Springboot快速入门篇,图文并茂 文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!搜索关注微信公众号 [码出Offer] 领取各种学习资料! image-20 ...

  3. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  4. SpringBoot快速入门(实战篇一)

    SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...

  5. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  6. SpringData 基于SpringBoot快速入门

    SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...

  7. 版本控制工具Git工具快速入门-Linux篇

    版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...

  8. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

  9. SpringBoot快速入门01--环境搭建

    SpringBoot快速入门--环境搭建 1.创建web工程 1.1 创建新的工程. 1.2  选择maven工程,点击下一步. 1.3 填写groupid(maven的项目名称)和artifacti ...

  10. SpringBoot快速入门(一)

    本文内容 SpringBoot概述 SpringBoot快速入门 SpringBoot起步依赖原理分析 SpringBoot配置 SpringBoot整合其他框架 1.SpringBoot概述 1.1 ...

随机推荐

  1. Java 微信端评论表情处理

    1,工具包下载:https://github.com/vdurmont/emoji-java 2,文本保存时处理:EmojiParser.parseToHtmlHexadecimal(str) 3,文 ...

  2. Redis安全学习

    Redis安全学习 一直在听SSRF打Redis,那Redis到底是啥,正式的认真学习一下. 1.Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvat ...

  3. PHP中的变量覆盖漏洞

    简介 今天利用周六整理了一下 php覆盖的漏洞 榆林学院的同学可以使用协会内部实验平台进行实验操作. 1.extract()变量覆盖 1.extract() extract() 函数从数组中将变量导入 ...

  4. 重闯Sqli-labs关卡第三天(6-10关)

    第六关(双注入GET双引号字符型注) 核心代码: 1 $id = '"'.$id.'"'; 2 $sql="SELECT * FROM users WHERE id=$i ...

  5. FL studio系列教程(十):FL Studio中如何新建样本

    FL Studio中强调以样本为核心的编曲模式.样本其实就是一个小的音序片段,可以是单独的乐器或单独的打击乐,还可以是他们组合的一个小音序片段,它是我们学习编曲的最基础知识.所以本文主要为大家讲解的是 ...

  6. Boom 3D的保真度是什么,如何应用

    Boom 3D是一款非常优秀的3D音频软件,拥有3D音效.环境模式.空间模式.夜间模式.保真度等多种音效模式,可以为用户提供多种音效体验感. 第一.什么是保真度 或许第一次接触音频软件的朋友就会问到什 ...

  7. WebsitePanel密码解密

    WebsitePanel是一套Windows系统中的虚拟主机管理系统,可以同时管理多台服务器. 通过反编译该系统的dll发现该系统的密码加密方式可逆. 解密流程 1,获取密钥 密钥保存在  Enter ...

  8. Redis设计与实现一之简单的动态字符串

    简单的动态字符串 Redis没有直接使用C语言中的字符串,而是自己构建了SDS这样的一种简单动态字符串,并且将他作为Redis中字符串的默认的表示. 但是并未完全抛弃C语言字符串,只不过是在C语言字符 ...

  9. centos8 yum 升级nginx

    原文地址:https://blog.csdn.net/lpwmm/article/details/105627476 CentOS8的Yum仓库中内置的nginx版本是1.14.1,最近漏扫提示需要升 ...

  10. WEB组态可视化软件(B/S)

    WEB组态可视化软件 目录 WEB组态可视化软件 1 B/S组态软件 2 组态概念 3 组态产品呈现 4 功能特点 5 组态软件应用场景 6 经典的案例 6.1 某通信基站的组态可视化 7 具体实现 ...