1.springboot框架能够帮我们做什么?
简化ssm框架的搭建工作,避免非常多的xml配置文件,提倡的以类配置的方式来进行配置。该框架内提供了很多的预配置类(在spring-boot-autoconfiguration/META-INF/spring.factories/EnableAutoConfiguration)。
简化了其他组件向spring框架集成。
springboot框架对web开发涉及到技术栈都能整合到一起。
2.对springboot框架的启动类有清晰的认识
-
main方法中
-
SpringApplication.run(主配置类的类对象,main参数) 初始化了springboot监听器(监听程序的启动,销毁) 打印输出banner 创建spring容器对象,加载配置类,refreshContext方法初始化容器,识别SpringBootConfiguration注解 初始化FatilureAnalyer错误分析器对象,共19个。
-
类上的@SpringBootApplication注解
-
@SpringBootConfiguration:本质就是@Configuration注解,表示当前类是一个配置类。 @EnableAutoConfiguration @AutoConfigurationPackage:把主配置类的包名作为bean扫描的范围。 @Import({AutoConfigurationImportSelector.class}):去jar包/META-INF/spring.factories下查找key为EnableAutoConfiguration的数据,找到jar包的所有的预配置类,按条件加载配置。 @ComponentScan:开启包扫描(@Configuration,@Controller,@Service,@Component,@Value,@Bean...)
3.对springboot的pom文件有清晰的认识
parent父工程:指定当前项目的父工程,父工程统一了各个组件之间的版本兼容;统一maven插件配置
packaging打包方式:默认是jar包打包
starter启动器:
springboot对组件提供了启动器的概念,把该组件整合项目需要用到的各个依赖包进行整理,并把该组件需要加入spring容器的bean对象做了预配置。
官方的启动器:spring-boot-starter-web;spring-boot-starter-json;spring-boot-starter-jdbc;spring-boot-starter-redis
第三方的启动器:Druid-spring-boot-starter;mybatis-spring-boot-starter
spring-boot-maven-plugin插件:把项目打包为jar包,并设置Main-class启动类,目的是让该jar包是一个可执行的jar包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--当前项目的父工程,作用是统一了各个组件之间的兼容问题,统一maven插件配置-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>boot110</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>boot110</name>
<!--打包方式默认是jia包打包,其他的方式还有war,pom-->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--官方启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署,java类改变的时候,自动重启-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!--把项目打包为jar包,并设置Main-class启动类,目的是让该jar包是一个可执行的jar包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>