SpringBoot
SpringBoot
SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术!
SpringBoot的主要目标是:
- 为所有 Spring 开发提供更快速、可广泛访问的入门体验。
- 开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整。
- 提供一系列大型项目通用的非功能性程序(如嵌入式服务器、安全性、指标、运行检查等)。
- 约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件。
总结:简化开发,简化配置,简化整合,简化部署,简化监控,简化运维。
父工程
在SSM的学习中,我们都是新建一个工程作为父工程,做依赖的统一管理
而在Springboot中,要将我们创建好的工程直接设置为springboot的子工程(认boot作父)
1 | |
- 每个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
- ……
注:因为父工程的版本控制,所以这个依赖也不需要写版本号
1 | |
启动类(@SpringBootApplication)
@SpringBootApplication注解修饰的类即为启动类,我们先来研究一下注解内容
1 | |
- @SpringBootConfiguration继承自@Configuration注解,它标识这这个类是一个配置类
- @EnableAutoConfiguration:自动加载其他的配置类
- @ComponentScan:扫描包,默认是扫描当前类所在的包及其子包的注解
SpringApplication.run
调用SpringApplication.run方法,将启动类本身的类对象和主方法参数作为参数传递
- 创建IoC容器,加载配置
- 启动内置的Web服务器(Tomcat)
1 | |
@Bean
因为启动类本身就是一个配置类,所以我们可以直接创建方法用@Bean修饰,手动注入组件或工厂Bean到IoC容器中
1 | |
SpringBoot
http://blog.170827.xyz/2024/06/30/SpringBoot/