快速上手springboot(2)
简介
- Spring程序的缺点:
1.依赖设置繁琐
2.配置繁琐 - SpringBoot程序优点
1.起步以来(简化依赖配置)
2.自动配置(简化常用工程相关配置)
3.辅助功能(内置服务器,...)
SpringBoot优点的依据:
- 1.parent用来减少配置依赖冲突
有时创建文件需要用到相同的坐标,如:

面对这样的情况,进行了优化:

这样一来,就不用管理坐标版本了(当多个技术在项目中使用时,会有包的版本不同,需要调包),而springboot将这些版本统一管理。
意思就是,当你需要使用某个技术的时候,需要导包,而到的这个包由boot来提供,版本号由boot决定,你只需要导报就行了
而这个行为就是由中的语句的功能,shift+鼠标右键,有两层,进入之后可以看见语句,里面放的就是若干个坐标版本
在中,定义一系列的坐标,并引用这些坐标,它规定了一些列的属性以及依赖管理
在阿里云中创建的模块,这个pom.xml文件中采取的是导入的方法,前面用的是继承,效果是相同的
小结:
- 1.开发SpringBoot程序要继承spring-boot-starter-parent
2.spring-boot-starter-parent中定义了若干个依赖管理
3.继承parent模块可以避免多个依赖使用相同技术时出现以来版本冲突
4.继承parent也可以采用引入的形式实现
做版本的统一化管理,parent只是定义了若干个版本,如果不手写调用的话,就没法使用它,那么到底谁在用呢? - 2.starter主体做简化配置,需要用到parent中继承过来的版本
starter中导入了版本坐标,所以,不需要再pom.xml文件中再次导入,这就是依赖传递
starter是SpringBoot中常见项目名称,定义了当前使用的所有依赖坐标,以到达减少依赖配置的目的
parent是所有SpringBoot项目中要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少以来冲突的目的;spring-boot-starter-parent各版本间存在着诸多坐标版本不同
实际开发中,当发现坐标错误时,就再指定Version
小结:- 1.开发SpringBoot程序需要导入坐标时,通常导入对应的starter(由于依赖传递,所以不需要定义版本号)
- 2.每个不同的starter根据共功能不同,通常包含多个依赖坐标
- 3.使用starter可以实现快速配置的效果,达到简化配置的目的
- 3.引导类初始化spring容器
starter和parent都是用来简化配置的,那么配置完毕之后靠谁运行呢?引导类
主方法中SpringApplication.run(Springboot0101QuickstartApplication.class, args);语句的作用spring或者mvc的程序,都会运行出一个spring容器的对象,所有的对象都以bean的形式交给spring容器管理;springboot程序也有这个容器

可以看出,这个引用类就是这么一个容器,用于存放bean
引导类的功能就靠里面的注解(进入注解),原来的容器是用于加载配置类的,这个容器就是配置类;实际上就是整个程序的入口,用于加载bean,加载之后其它语句才能起作用(加载的前面的成员是加载配置,这个引导类是启动程序,而不是启动服务器,那谁来启动服务器呢?) - 4.内嵌tomcat启动服务器
在pom.xml文件中的配置starter-web中,里面有一个tomcat,进去之后有一个tomcat-embed-core内嵌tomcat服务器
以前启动,是将程序扔到服务器当中,然后启动,而现在是将服务器内嵌到程序中
将一个tomcat的执行过程抽取出来,并变成一个对象,而后将这个对象交给spring容器去管理,现在要运行的所有东西,需要在tomcat对象中运行
如果不想用tomcat服务器,可以把这个依赖语句删掉(删掉之后就没有web服务功能了),但是必须要告诉程序,你将要使用的服务器;
排除依赖功能:标签,指定排除项将依赖项添加进去;然后通过标签添加服务器,如
org.springframework.boot
spring-boot-starter-jetty(jetty服务器)
在pom文件中导入了starter-web,而在这个starter-web中导入了tomcat这个服务器,并指定了版本号,运行时靠tomcat中的核心包

boot中内置服务器有三种:
1.tomcat;应用面广
2.jetty;更轻量级
3.undertow;
小结:
1.内嵌tomcat服务器是SpringBoot辅助功能之一
2.内嵌tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
3.变更内嵌服务器思想是去除现有服务器,添加全新的服务器
快速上手springboot(2)的更多相关文章
- 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发
简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...
- 【快学SpringBoot】快速上手好用方便的Spring Cache缓存框架
前言 缓存,在开发中是非常常用的.在高并发系统中,如果没有缓存,纯靠数据库来扛,那么数据库压力会非常大,搞不好还会出现宕机的情况.本篇文章,将会带大家学习Spring Cache缓存框架. 原创声明 ...
- SpringBoot+SpringDataJpa快速上手(基本CRUD)
以及表结构和数据 依赖 <!-- 如果有SpringBoot启动器,就不加--> <parent> <groupId>org.springframework.boo ...
- Spring Boot 揭秘与实战(一) 快速上手
文章目录 1. 简介 1.1. 什么是Spring Boot 1.2. 为什么选择Spring Boot 2. 相关知识 2.1. Spring Boot的spring-boot-starter 2. ...
- 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期
原文:https://blog.gitee.com/2018/08/19/weekly-81/ 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期 码云周刊 | 201 ...
- Gradle快速上手——从Maven到Gradle
[本文写作于2018年7月5日] 本文适合于有一定Maven应用基础,想快速上手Gradle的读者. 背景 Maven.Gradle都是著名的依赖管理及自动构建工具.提到依赖管理与自动构建,其重要性在 ...
- React:快速上手(8)——前后端分离的跨域访问与会话保持
React:快速上手(8)——前后端分离的跨域访问与会话保持 跨域访问 跨域是指从一个域名的网页去请求另一个域名的资源.比如从http://www.baidu.com/ 页面去请求http://www ...
- 轻松上手SpringBoot+SpringSecurity+JWT实RESTfulAPI权限控制实战
前言 我们知道在项目开发中,后台开发权限认证是非常重要的,springboot 中常用熟悉的权限认证框架有,shiro,还有就是springboot 全家桶的 security当然他们各有各的好处,但 ...
- springcloud - alibaba快速上手 - 更新完毕
1.简单对比一下springcloud与springcloud-alibaba 2.准备知识 官网:https://nacos.io/zh-cn/ 查看cloud和springboot的对应关系 ht ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
随机推荐
- LeetCode 周赛 332,在套路里摸爬滚打~
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,今天是 3T 选手小彭. 上周是 LeetCode 第 332 场周赛,你参加了吗?算法解题思维需要 ...
- 学习Java Day10
今天学习了数组的相关知识
- Vulhub 漏洞学习之:Adobe ColdFusion
Vulhub 漏洞学习之:Adobe ColdFusion 目录 Vulhub 漏洞学习之:Adobe ColdFusion 1 Adobe ColdFusion 文件读取漏洞(CVE-2010-28 ...
- Postgresql临时表(TEMPORARY TABLE)
一.简介 PostgreSQL中的临时表分两种,一种是会话级临时表,一种是事务级临时表.在会话级临时表中,数据可以存在于整个会话的生命周期中,在事务级临时表中的数据只能存在于事务的生命周期中.默认创建 ...
- 一次线上OOM问题分析
现象 线上某个服务有接口非常慢,通过监控链路查看发现,中间的 GAP 时间非常大,实际接口并没有消耗很多时间,并且在那段时间里有很多这样的请求. 原因分析 先从监控链路分析了一波,发现请求是已经打到服 ...
- day09-MyBatis缓存
MyBatis缓存 mybatis – MyBatis 3 | cache MyBatis 一级缓存全详解(一) MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制. 为了 ...
- 五子棋 framebuffer版
要在家目录下 makefile 1 main : main.o fun.o input.o fb_draw.o 2 gcc -Wall -o $@ $^ 3 clean : 4 rm -rf *.o ...
- vs2019 代码片段管理
工具/代码片段管理 上面地址是vs内部代码片段,可以参考写自定义片段 写好的模板保存为.snippet文件,放到固定文件夹中,然后使用添加,直接找到文件夹添加即可 <?xml version=& ...
- 【PyQt5学习-02-】PyQt5 库的结构
1.pyqt5模块 pyqt5模块(module)文档 https://www.riverbankcomputing.com/static/Docs/PyQt5/module_index.html q ...
- K8S 部署es,搭建efk日志收集系统
1.k8s部署es集群:https://www.jianshu.com/p/e490f7597539 2.k8s搭建efk日志收集系统:https://www.cnblogs.com/minseo/p ...