美文网首页
Spring Boot 基础

Spring Boot 基础

作者: Tinyspot | 来源:发表于2022-11-18 22:50 被阅读0次

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>

相关文章

网友评论

      本文标题:Spring Boot 基础

      本文链接:https://www.haomeiwen.com/subject/isivxdtx.html