网站后台文章删了 怎么前台还有,网站建设任务和标准,数据服务器,制作网站公司定价Spring Boot 的核心原理几个关键点 约定优于配置#xff1a; Spring Boot 遵循约定优于配置的理念#xff0c;通过预定义的约定#xff0c;大大简化了 Spring 应用程序的配置和部署。例如#xff0c;它自动配置了许多常见的开发任务#xff08;如数据库连接、Web 服务器配…Spring Boot 的核心原理几个关键点 约定优于配置 Spring Boot 遵循约定优于配置的理念通过预定义的约定大大简化了 Spring 应用程序的配置和部署。例如它自动配置了许多常见的开发任务如数据库连接、Web 服务器配置等使得开发人员可以专注于业务逻辑而不是繁琐的配置。 自动配置 Spring Boot 的自动配置Auto-Configuration机制是其核心功能之一。它通过在类路径下的 META-INF/spring.factories 文件中定义的配置类根据应用程序的依赖关系和条件自动配置 Spring 环境。这样可以避免手动配置大量的 Spring 组件和 bean显著简化了项目的初始化和配置过程。 起步依赖 Spring Boot 提供了大量的起步依赖Starter Dependencies它们是预配置的依赖项集合可以快速地集成常见的技术栈如Web 开发、数据访问、安全性等。起步依赖不仅包含了必要的依赖库还包含了相应的自动配置使得整合第三方库变得简单和快速。 内嵌容器 Spring Boot 默认集成了多种内嵌的 Web 容器如Tomcat、Jetty、Undertow可以直接打包为可执行的 JAR 文件。这种方式简化了部署和运行 Spring 应用程序的过程不需要额外部署外部的 Web 服务器。 Actuator Spring Boot Actuator 是一个用于监控和管理应用程序的功能模块可以通过 HTTP、JMX 等多种方式暴露应用程序的内部信息和健康状况。Actuator 提供了许多内置的端点Endpoints例如 /actuator/health、/actuator/info 等用于查看应用程序的运行状态和详细信息。 外部化配置 Spring Boot 支持通过外部配置文件如 application.properties 或 application.yml来管理应用程序的配置。这些配置文件可以包含不同环境如开发、测试、生产的配置选项允许在不同环境中灵活地切换配置项而无需修改代码。 注解驱动 Spring Boot 鼓励使用注解驱动的开发方式例如 SpringBootApplication、RestController、Service 等。这些注解简化了开发人员对 Spring 组件的声明和管理提高了代码的可读性和维护性。 外部插件和扩展 Spring Boot 支持许多外部插件和扩展如 Spring Boot DevTools、Spring Boot CLI 等这些工具和插件进一步增强了开发体验和生产效率。
总体来说Spring Boot 的设计理念是通过简化配置、提供默认值、自动化任务等手段使得开发者可以更加专注于业务逻辑的实现同时显著降低了构建和部署 Spring 应用程序的复杂性和成本。
自动配置原理及自定义自动配置类
原理分析
从SpringBootApplication 开始 org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#getCandidateConfigurations org.springframework.core.io.support.SpringFactoriesLoader#loadSpringFactories spring-boot 默认集成的自动配置类 注解EnableAutoConfiguration是开启springboot开启自动配置的核心。详细流程如下
具体有Import({AutoConfigurationImportSelector.class})实现批量导入配置组件容器的功能。导入AutoConfigurationImportSelector的对象的selectImports方法返回的所有配置组件。
从spring-boot-autoconfig包中的Autoconfiguration.imports文件中读取需要加载的配置文件。但并不是所有配置都会生效因为在所有的配置类上都有ConditionalOnClass注解。当引入starter后与之对应的ConditionalOnClass就满足条件了也就是相关的配置就生效了。 自动配置需要满足的条件比如 自定义自动配置类
在src/main/resources/META-INF/spring.factories文件中添加自动配置类的引用 org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.example.CustomAutoConfiguration Spring Boot的启动器监听器
Spring Boot的启动器监听器ApplicationRunner和CommandLineRunner允许我们在应用程序启动后执行一些自定义逻辑。我们可以创建自己的启动器监听器来执行特定的初始化或后续操作。
选择使用 CommandLineRunner 还是 ApplicationRunner 取决于你需要处理的命令行参数的复杂性和类型。通常情况下如果只需要简单地获取和打印命令行参数可以选择 CommandLineRunner如果需要更复杂的参数解析或处理逻辑推荐使用 ApplicationRunner。
ApplicationRunner
ApplicationRunner 接口中的 run 方法接收一个 ApplicationArguments 对象作为参数这个对象提供了更丰富的功能来处理应用程序启动时的参数。ApplicationArguments 对象不仅包含了原始的命令行参数数组还提供了方便的方法来访问和解析命令行参数包括非标记参数、选项参数等。适合处理复杂的命令行输入或需要更高级参数解析功能的初始化逻辑。
CommandLineRunner
CommandLineRunner 接口中的 run 方法接收一个字符串数组作为参数这个数组表示应用程序启动时传递的命令行参数。使用 CommandLineRunner 接口时你可以直接访问原始的命令行参数数组可以方便地处理简单的命令行参数不需要进行复杂的解析。适合处理基本的命令行输入或简单的初始化逻辑。 参考资料
https://zhuanlan.zhihu.com/p/653791243