SpringBoot 基本奥义
springboot 是用来快速使用spring的方试。基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而提高了开发的效率
就是简化 spring的开发配置,是spring顶级项目之一。
Spring缺点
1)配置繁琐
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始, Spring用XML配置,而且是很多XML配置, Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样, Spring实用,但它要求的回报也不少。
2)依赖繁琐
项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
SpringBoot功能
1) 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。
约定大于配置:只要是启动类 当前或者后面子包中的注解,都会自动扫描
2) 起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
3) 辅助功能
提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。
用maven 创建 springboot需要的坐标依赖
<!--springboot工程需要继承的父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<dependencies>
<!--web开发的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
springboot的 引导类
用来运行 springboot项目
/* 这是springboot的 引导类
就是进入springboot程序的入口 */
/* @SpringBootApplication springboot的 引导类的注解
* 有了这个注解,才能将这个类 变成springboot引导类 */
@SpringBootApplication
public class HelloApplication {
/* 运行springboot项目,就的运行这个 */
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args);
}
}
也可以在创建springboot项目模块时
通过 Spring Initlalizr 来创建 意思是 spring初始化。
选择 Spring Initlalizr 后 直接点击 Next
在出现的页面 填写
Project Metadata
Group: 组名 com.itheima
ArtifactIype 项目模块名称 springboot-initMaven
Tурe:Maven Project 项目工程 选择maven工程
Language: Java
Packaging:jar 打包方式
Java Version: 8 版本
Version:0.0.1-SNAPSHOT 版本
Name:springboot-init 与 项目模块名称 一致
Description: Demo proiect for Sprina Boot
Package:com.itheima,springbgotinit
然后下一步
通过 图形化界面勾选依赖,就能自动生成依赖
再然后下步 点击 finilly 就完了。
05-SpringBoot起步依赖原理分析
-
在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
-
在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
-
我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。