SpringBoot
SpringBoot
SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术!
SpringBoot的主要目标是:
- 为所有 Spring 开发提供更快速、可广泛访问的入门体验。
- 开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整。
- 提供一系列大型项目通用的非功能性程序(如嵌入式服务器、安全性、指标、运行检查等)。
- 约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件。
总结:简化开发,简化配置,简化整合,简化部署,简化监控,简化运维。
父工程
在SSM的学习中,我们都是新建一个工程作为父工程,做依赖的统一管理
而在Springboot中,要将我们创建好的工程直接设置为springboot的子工程(认boot作父)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
</parent>
- 每个boot项目都有一个父项目
spring-boot-starter-parent
- parent的父项目是
spring-boot-dependencies
- 父项目 版本仲裁中心,把所有常见的jar的依赖版本都声明好了
启动器(Strater)
Spring Boot提供了一种叫做Starter的概念,它是一组预定义的依赖项集合,旨在简化Spring应用程序的配置和构建过程
Starter包含了一组相关的依赖项,以便在启动应用程序时自动引入所需的库、配置和功能
-
简化依赖管理
-
自动配置
-
提供约定优于配置
-
快速启动和开发应用程序
-
模块化和可扩展性
Spring Boot提供了许多预定义的Starter,例如spring-boot-starter-web用于构建Web应用程序,spring-boot-starter-data-jpa用于使用JPA进行数据库访问,spring-boot-starter-security用于安全认证和授权等等
命名规范:
- 官方提供的场景:命名为:
spring-boot-starter-*
- 第三方提供场景:命名为:
*-spring-boot-starter
spring-boot-starter-web
添加web整合依赖,包括但不限于:
- Spring-webmvc
- servlet
- jackson
- ……
注:因为父工程的版本控制,所以这个依赖也不需要写版本号
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
启动类(@SpringBootApplication)
@SpringBootApplication注解修饰的类即为启动类,我们先来研究一下注解内容
……
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
……
- @SpringBootConfiguration继承自@Configuration注解,它标识这这个类是一个配置类
- @EnableAutoConfiguration:自动加载其他的配置类
- @ComponentScan:扫描包,默认是扫描当前类所在的包及其子包的注解
SpringApplication.run
调用SpringApplication.run方法,将启动类本身的类对象和主方法参数作为参数传递
- 创建IoC容器,加载配置
- 启动内置的Web服务器(Tomcat)
package com.xiaobai;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args); // 自动创建IoC容器,启动tomcat软件
}
}
@Bean
因为启动类本身就是一个配置类,所以我们可以直接创建方法用@Bean修饰,手动注入组件或工厂Bean到IoC容器中
package com.xiaobai;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args); // 自动创建IoC容器,启动tomcat软件
}
@Bean
public Object object(){
return new Object();
}
}