栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot入门案例解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot入门案例解析

SpringBoot简介

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始化搭建以及开发过程
Spring程序缺点:依赖设置繁琐、配置繁琐
SpringBoot程序优点:起步依赖(简化依赖配置)自动配置(简化常用工程相关配置)辅助功能(内置服务器…)

parent 依赖冲突

我们做程序的过程中避免不了的会导入相同的坐标,比如在俩个工程中,我们都会用到两份相同的坐标,这样往往会因为坐标冲突而引发一系列问题。但可以使用一个坐标,也可以做成两个文件坐标集中管理,版本集中管理,可解决依赖冲突问题。

SpringBoot版本依赖管理

例如在pom文件中导入servlet的坐标,不用写版本号,在刷新Maven后,会自动出现带有版本号的servlet坐标。

其实,就是因为parent帮我们做的继承后又继承了dependencies,而dependencies中定义了几百个版本信息,定义了一系列的坐标引用信息,方便我们的配置,从而避免冲突现象的发生。
可是,在阿里云中创建的项目中,使用dependencyManagement在其中引用dependencies。
多学一招
如果要研究依赖坐标的版本管理,完全取决于现在SpringBoot的版本,可以取不同版本的pom文件进行对比,选中右键Compare Files可进行文件的比对,在properties中不一样的就是版本的变化,一个SpringBoot对应的版本号对应的里面的坐标实际上是不一样的。

Parent总结

1、开发SpringBoot程序要继承spring-boot-starter-parent
2、spring-boot-starter-parent中定义了若干个依赖管理
3、继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
4、继承parent的形式可以采用引入依赖的形式实现效果

starter

因为我们导入了start,start中导入了具体的依赖,所以我们就不用导入了,即为依赖传递

starter

SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的

parent

所有SpringBoot项目要继承的项目,定义了若干个坐标版本号==(依赖管理,而非依赖),以达到减少依赖冲突==的目的
spring-boot-starter-parent各版本间存在着诸多坐标版本不同

实际开发

使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot来提供对应版本的V
如发生坐标错误,再指定Version(要小心版本冲突)

starter总结

1、开发SpringBoot程序需要导入坐标时通常导入对应的starter
2、每个不同的starter根据功能不同,通常包含多个自来坐标
3、使用starter可以实现快速配置的效果,达到简化配置的目的

引导类

SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载Bean

package com.zg;

import com.zg.controller.BookController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class Springboot0101QuickstartApplication {

    public static void main(String[] args) {
        //SpringApplication.run(Springboot0101QuickstartApplication.class, args);
        ConfigurableApplicationContext ctx = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
        BookController bean = ctx.getBean(BookController.class);
        System.out.println("bean--->"+bean);
    }

}


所以,在SpringApplication.run(Springboot0101QuickstartApplication.class, args);中就是定义了一个Spring容器
引导类主要靠@SpringBootApplication注解通过@Configuration的注解,以前在Spring中也是通过@Configuration加载配置类

引导类总结

1、SpringBoot工程提供引导类用来启动程序
2、SpringBoot工程启动后创建并初始化Spring容器

SpringBoot辅助功能(内置TomCat)

Tomcat的内嵌式因为tomcat也是用Java语言编写的,所以将一个tomcat容器的执行
过程抽取出来变成一个对象,然后把这个对象交给Spring容器去管理。

排除tomcat

使用maven依赖管理变更起步依赖项,可以排除内置的tomcat

Jetty比Tomcat更轻量级,可扩展性更强(相比tomcat)

SpringBoot中内置了三款服务器

tomcat(默认):apache出品,应用面广,负载了若干较重的组件
jetty:更轻量级,负载性能远不及tomcat
undertow:负载性能勉强跑赢tomcat

总结

1、内嵌Tomcat服务器是SpringBoot辅助功能之一
2、内嵌Tomcat工作原理是将tomcat服务器作为对象运行,并将该对象交给Spring容器管理
3、变更内嵌服务器思想是去除现有服务器,添加全新的服务器

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号