1. 基础
- SpringBoot 是一个可以整合 Spring, SpringMVC, data-jpa 等框架的工具集
- SpringBoot 工程部署时,采用的是 jar 方式,内部自动依赖 Tomcat 容器
1.2 场景启动器
- 整合第三方框架时,只需要导入相应的 starter 依赖包,就可以自动整合
spring-boot-starter-*
1.3 优缺点
- 优点
- 快速构建项目,主流开发框架 Spring Web, MVC, Mybatis, Spring Cloud 无配置集成
- 内嵌 Tomcat 和 Jetty 容器,不需要单独安装容器,jar 包直接运行
- 基于注解的零配置思想
- 缺点
- 报错难定位
1.4 Spring Boot vs Spring Cloud
- Spring Cloud 是微服务技术
- Spring Boot 不是微服务技术,它只是一个用于加速开发 Spring 应用的基础框架
- 基于 Spring Boot 做微服务,需要自己开发很多微服务的基础设施,比如基于 zookeeper 来实现服务注册和发现
2. SpringBoot 三种启动方式
方式一:直接运行 SpringApplication 类中的 main() 方法
方式二:maven 方式
在 SpringBoot 工程目录下运行 mvn spring-boot:run
方式三:jar包运行
首先将 springboot 项目打包为 jar, jar 放入任何地方都行,用 java -jar xxx.jar
运行
2.1 配置文件
application.properties
server.port=9999
等价在外部 java -jar xxx.jar --server.port=9999
application.yml
- 严格遵循换行和空格
- value 值一定要有空格
port: 空格 8080
3. 自动配置
autoconfigure.png例如:org.springframework.boot.autoconfigure.web.ServerProperties 与 配置的对应关系
server: # prefix = "server"
port: 8080
@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties {
private Integer port;
private InetAddress address;
}
3.2 关闭特定的自动配置
一旦引入 starter 自动配置就生效
比如项目依赖了 Mysql,但未配置数据源,启动时就会报错,此时可排除
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
4. 依赖管理
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/>
</parent>
在 spring-boot-starter-parent.pom 文件里还有 <parent>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.7.5</version>
</parent>
父pom spring-boot-dependencies.pom 文件里默认指定了很多版本
<mysql.version>8.0.31</mysql.version>
4.1 版本仲裁
若不想要 Spring Boot 里指定的版本,可以覆盖
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
网友评论