进入网站空间深圳企业网站建设制作公司
进入网站空间,深圳企业网站建设制作公司,商务网站建设实训总结,ucenter 整合两个数据库网站目录
学习目标Spring Boot 的基本配置 启动类与核心注解SpringBootApplicationSpring Boot 的全局配置文件 1. application.properties2. application.ymlSpring 中Spring Boot Application注解的作用 自动配置原理 1. 自动配置类2. 自动配置的发现示例3. 自定义自动配置 条…目录学习目标Spring Boot 的基本配置启动类与核心注解SpringBootApplicationSpring Boot 的全局配置文件1. application.properties2. application.ymlSpring 中Spring Boot Application注解的作用自动配置原理1. 自动配置类2. 自动配置的发现示例3. 自定义自动配置条件注解使用场景总结学习目标Spring Boot 核心Spring Boot 的基本配置自动配置原理条件注解Spring、Spring MVC和Spring Boot之间的关系可以这样理解Spring是一个全面的框架提供了核心功能如依赖注入和事务管理。SpringMVC是Spring的一部分专注于构建基于MVC模式的Web应用。SpringBoot则是基于Spring的工具使得开发新Spring应用变得更加简单和快速通过自动配置和约定优于配置的方式来减少开发者的工作量。Spring Boot 的基本配置启动类与核心注解SpringBootApplication在 Spring Boot 中SpringBootApplication 是一个核心注解通常用于标记启动类。它实际上是一个组合注解包含了多个其他的 Spring 注解.主要有:SpringBootConfiguration表示这是一个 Spring 配置类可以包含 Bean 方法用来定义 bean的实例化。这个注解是 Configuration 的别名。ComponentScan用于开启组件扫描可以指定要扫描的包路径默认情况下会扫描EnableAutoConfiguration启用自动配置功能Spring Boot 会根据类路径中可用的jar包来自动配置bean例如如果检测到 Tomcat则会自动配置嵌入式的Tomcat。也可以通过排除某些自动配置类来定制自动配置行为。Spring Boot 的全局配置文件Spring Boot 支持多种配置文件格式其中最常用的是application.properties和application.yml文件。一般位于s’r’csrc-main-resources1. application.propertiesapplication.properties文件是一个纯文本文件其中每个配置项都是键值对的形式键和值之间使用等号或者冒号:分隔。例如# application.properties server.port8080 spring.datasource.urljdbc:mysql://localhost:3306/mydb spring.datasource.usernameroot spring.datasource.passwordpassword2. application.ymlapplication.yml文件使用 YAML 格式它可以更好地组织配置信息使其看起来更加清晰。例如# application.yml server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: passwordYAML 格式支持嵌套结构因此可以更容易地组织和阅读配置信息。Spring 中Spring Boot Application注解的作用SpringBootApplication 注解是 Spring Boot 中的关键注解之一它通过整合多个注解的功能简化了应用程序的创建过程。简化配置通过自动配置和组件扫描减少手动配置的工作量。自动配置根据类路径中的 jar 包自动配置组件和服务。组件扫描自动发现并装配带有特定注解的类。配置类允许在配置类中定义 bean。Spring官方文档提供了一个非常详尽的资源库涵盖了Spring框架及其衍生项目如Spring Boot的全面指南。对于全局配置文件以及Spring Boot的配置细节你可以直接访问Spring官方网站上的文档部分来获取最新和最权威的信息。以下是 Spring Boot 和 Spring Framework 的官方文档链接Spring Boot 官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/Spring Framework 官方文档: https://docs.spring.io/spring-framework/docs/current/reference/html/自动配置原理Spring Boot 的自动配置原理是其一大特色之一它通过一系列机制使得开发者能够快速搭建应用而无需过多关注配置细节。1. 自动配置类自动配置的核心在于一系列自动配置类这些类通常位于org.springframework.boot.autoconfigure包及其子包内。每个自动配置类负责一个特定的功能领域如数据库连接、日志记录、安全等。自动配置类通常使用EnableAutoConfiguration注解来启用。2. 自动配置的发现Spring Boot 使用EnableAutoConfiguration注解来启用自动配置功能。这个注解本身并不做任何事情而是通过SpringFactoriesLoader机制来加载所有的自动配置类。SpringFactoriesLoader会从META-INF/spring.factories文件中读取自动配置类的全限定名并加载它们。在 Spring Boot 启动过程中AutoConfigurationImportSelector 被用来选择合适的自动配置类并将其导入到 Spring 应用上下文中。被 EnableAutoConfiguration 触发当我们在 Spring Boot 应用的主类上使用 SpringBootApplication 或 EnableAutoConfiguration 注解时Spring Boot 会触发自动配置机制。EnableAutoConfiguration 注解实际上是一个元注解它内部使用了 Import(AutoConfigurationImportSelector.class) 来导入 AutoConfigurationImportSelector。示例假设我们有一个简单的 Spring Boot 应用使用嵌入式 Tomcat 作为服务器import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args ) { SpringApplication.run(Application.class, args); } }在org.springframework.boot.autoconfigure.web包中有一个名为TomcatAutoConfiguration的自动配置类它负责配置嵌入式的 Tomcat 服务器。这个类会使用ConditionalOnClass来检查是否有 Tomcat 类库使用ConditionalOnMissingBean来决定是否需要创建一个新的 Tomcat 实例等。3. 自定义自动配置如果你需要为自己的组件或库添加自动配置支持可以自己编写自动配置类并遵循上述模式。你需要创建一个自动配置类并使用适当的条件注解。使用Bean方法来定义 bean。如果需要绑定配置属性可以使用ConfigurationProperties注解。条件注解条件注解Conditional Annotations是 Spring 框架中用于控制 Bean 创建的重要工具。这些注解允许你在不同的条件下有条件地注册或不注册 Bean从而实现灵活的配置。在 Spring Boot中条件注解广泛应用于自动配置类中以决定是否应该启用某个特定的配置或 Bean。所谓Spring 条件注解就是应用程序的配置类的配置项ConditionalOnClass用途当类路径中存在某个特定类时条件才满足。示例如果类路径中有EmbeddedMongo类则激活 MongoDB 的自动配置。代码示例Configuration ConditionalOnClass({ EmbeddedMongo.class }) public class MongoAutoConfiguration { // 配置 MongoDB 相关的 Bean }ConditionalOnMissingClass用途当类路径中不存在某个特定类时条件才满足。示例如果类路径中没有javax.servlet.Filter类则不激活与 Servlet 相关的配置。代码示例Configuration ConditionalOnMissingClass(javax.servlet.Filter) public class NonServletConfig { // 非 Servlet 环境下的配置 }ConditionalOnBean用途当容器中已经存在某个特定类型的 Bean 时条件才满足。示例如果容器中已经有了MyService类型的 Bean则激活与之相关的配置。代码示例Configuration ConditionalOnBean(MyService.class) public class MyServiceConfig { // 配置与 MyService 相关的其他 Bean }使用场景这些条件注解在 Spring Boot 的自动配置类中广泛应用以决定是否应该激活某个特定的配置或 Bean。例如在自动配置 MongoDB 连接时我们可以使用ConditionalOnClass和ConditionalOnMissingBean来确保只有在类路径中有EmbeddedMongo类且没有已存在的MongoBean 时才会创建一个新的Mongo实例。总结Spring Boot的强大之处在于其条件注解实现自动化和灵活配置。这些注解帮助开发人员轻松构建扩展性强、配置灵活的应用而无需关注复杂配置。通过智能地选择和配置Bean提升了应用的健壮性和适应性。Spring Boot自动配置依赖于一系列自动配置类利用条件注解确定配置启用时机并借助EnableAutoConfiguration和SpringFactoriesLoader自动加载所需配置类。ConfigurationProperties简化了配置属性绑定过程。全局配置文件如application.properties或application.yml在管理应用配置中起着关键作用支持多环境配置确保应用在不同环境中展现不同效果。