关于 Spring Boot

Spring Boot框架的作用 达内Java成恒老师笔记

Spring Boot框架主要解决了依赖管理、自动配置的相关问题。

在开发实践中,需要使用到的依赖项(框架、各种工具,等等)比较多,如果依赖项A依赖于B,依赖项C也依赖于B,但是,它们依赖的依赖项B的版本却不同,则无法正常使用!Spring Boot提供了一系列的spring-boot-starter-???依赖项,这些依赖项中都包括了主流的相关依赖项,以spring-boot-starter-web为例,其中就包含了Spring MVC框架的核心依赖项spring-webmvc,也包含了响应JSON时需要使用到的jackson-databind,等等,并且,管理了这些依赖项的版本,以至于各个开发者只需要添加spring-boot-starter-web即可,由Spring Boot来决定其依赖的spring-webmvcjackson-databind等依赖项的版本,并保证是兼容可用的!

在没有Spring Boot框架之前,每创建一个新的项目,或添加新的依赖,可能都需要做大量的配置,而各个不同的项目中,使用相同的依赖时,需要编写的配置可能是高度相似,甚至完全相同的!Spring Boot希望它是“开箱即用的(Out Of Box)”,它自动的处理掉了许多可预测的配置,同时,它是希望遵循“约定大于配置”的思想的,即:各开发者不必关心Spring Boot是如何配置的,只需要知道Spring Boot把哪些配置项配置成什么值即可,然后,开发者只需要按照这些配置值的“约定”去写代码就行!例如,Spring Boot将组件扫描的包配置为启用类所在的包,开发者只需要将各组件类声明在此包或其子孙包下即可,根本不需要关心Spring Boot在哪里或通过什么方式配置了组件扫描!

Spring Boot框架的依赖项

当在项目中需要使用Spring Boot框架时,需要添加spring-boot-starter基础依赖项,例如:

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.5.9</version>
</dependency>

Spring Boot的典型特征

  • 任何以spring-boot-starter作为前缀的依赖项(例如spring-boot-starter-testspring-boot-starter-web等),都使用spring-boot-starter作为基础依赖项
  • spring-boot-starter中,包含了SLF4j日志框架的依赖项,所以,任何一个Spring Boot项目,都可以直接使用SLF4j日志框架
  • Spring Boot项目默认创建了src/main/resources/application.properties配置文件,并且在启用项目时,自动读取此配置文件,所以,在此配置文件中的配置是默认读取的
  • Spring Boot指定了一系列特定名称的配置属性,例如spring.datasource.urlserver.port等,按照这些名称编写的配置,会被自动应用
  • Spring Boot支持Profile配置,任何以application-自定义名称.properties作为文件名的配置文件,都会被视为Profile配置,例如application-dev.propertiesapplication-dev-jack.properties
  • spring-boot-starter中,包含了snakeyaml工具包,可以解析YAML语法的配置,所以,在Spring Boot项目中,可以使用.yml作为扩展名的配置文件,取代.properties配置文件
  • Spring Boot项目的启用类上添加了@SpringBootApplication注解,每个项目中只能有1个类添加此注解
  • 启用类上的@SpringBootApplication注解还使用了@SpringBootConfiguration作为元注解,且@SpringBootConfiguration使用@Configuration作为元注解,所以,启动类本身也是一个配置类
  • 启用类上的@SpringBootApplication注解还使用了@ComponentScan作为元注解,且没有配置组件的包,所以,默认执行组件扫描时,会扫描启用类所在的包
  • src/test/java下编写的测试类,当需要加载项目的各种配置和Spring环境时,需要在测试类上添加@SpringBootTest注解,且这样的测试类所在的包,与src/main/java下的组件扫描的包必须是一致的
  • 当添加了数据库编程的相关依赖项时(例如spring-boot-starter-jdbc,或包括此依赖项的其它依赖,例如mybatis-spring-boot-starter中就包含了spring-boot-starter-jdbc),启用项目时,Spring Boot会自动读取连接数据库的配置(即从配置文件中读取spring.datasource.url属性的值),如果在配置文件中并未配置此属性,或此属性的值不是以jdbc:开头的,会导致项目启动失败
  • 当添加了数据库编程的相关依赖项时,会自动配置DataSource对象
  • 当添加了spring-boot-starter-web依赖项后,此依赖项中包含一个嵌入式的Tomcat,当启用项目时,会自动将当前项目部署到此Tomcat上并启用Tomcat,默认占用8080端口,可通过配置文件中的server.port属性修改端口号
  • 在Spring MVC项目中,当需要响应JSON格式的正文时,需要添加jackson-databind依赖,在spring-boot-starter-web中也包含了依赖,所以,在基于Spring Boot的Web开发中,可以直接响应JSON格式的正文
  • 当添加了spring-boot-starter-web依赖项后,会将src/main/resources/static配置为默认的静态资源文件夹,如果需要允许访问静态资源,将相关文件放在此文件夹中即可
    • 在创建项目时勾选了Web选项,会自动创建此static文件夹,如果未勾选,只要添加了依赖项,可自行创建此文件夹
    • 另外还有src/main/resources/templates文件夹也可作为静态资源文件夹,但不推荐,此文件夹应该是用于存放模板视图文件的(非前后端分离项目才需要使用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 答:Spring Boot是一个开源框架,可以让您快速搭建高效的Java应用程序。它可以帮助您减少许多样板代码,并且可以帮助您更轻松地将您的应用程序部署到生产环境。了解有关Spring Boot的相关知识,可以参考官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/,也可以搜索一些Spring Boot教程。 ### 回答2: Spring Boot是一个用于构建独立的、生产级的Spring应用程序的开源框架。它使开发者可以快速、轻松地创建Spring应用程序,而无需过多的配置。下面是一些关于Spring Boot的知识推荐: 1. 简单的配置:Spring Boot提供了一种简化配置的方式,使用约定大于配置的原则,许多常见的配置都可以通过默认值自动完成。 2. 自动配置:Spring Boot根据当前类路径上的依赖关系,自动为应用程序进行配置。这意味着开发者可以在不编写大量代码的情况下实现一些常见功能,如数据库连接、web安全等。 3. 内嵌的服务器:Spring Boot内嵌了常见的服务器,如Tomcat、Jetty,使得应用程序可以轻松地以独立的方式运行。 4. 开箱即用的特性:Spring Boot提供了许多开箱即用的特性,如健康监测、远程配置、日志管理等。这些特性使得开发者可以快速实现一些常见的功能需求。 5. 监控和管理:Spring Boot提供了一些监控和管理的功能,如应用程序健康检查、性能指标监控、远程调试等。 6. 集成测试支持:Spring Boot提供了一些用于集成测试的支持,例如自动配置的测试、随机端口绑定等。 7. 生产级性能:Spring Boot设计时考虑到了生产级性能需求,提供了一些性能优化的功能,使得应用程序可以在高并发环境下高效运行。 总之,Spring Boot为开发者提供了一个简化、快速构建Spring应用程序的框架,具有简单配置、自动配置、内嵌服务器、开箱即用的特性、监控和管理、集成测试支持以及生产级性能等特点。了解和掌握这些知识可以帮助开发者更好地使用和学习Spring Boot框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值