microservices-book
  • 前言
  • 微服务基础
    • 微服务架构和单体应用架构
    • 微服务架构特征
    • 微服务治理与去中心化
    • 微服务演进式设计与优缺点
    • 微服务宏观把控
  • 面向服务的架构
    • SOA 理论与概念
    • 维基百科微服务
    • 微服务和 SOA 对比
  • Spring Boot
    • Spring Boot 应用起步与配置
    • Spring Boot 应用配置分析
    • Spring Boot 打包文件内容与结构
    • 使用 Gradle 构建 Spring Boot 应用
    • Spring Boot 参数自动装配
    • Jar 文件规范
    • Spring Boot Loader 源码分析
    • 反射扩展
    • JDWP 远程调试
    • 使用 JDWP 调试 Spring Boot Loader 源码
    • @SpringBootApplication
    • @SpringBootConfiguration
    • @Configuration
Powered by GitBook
On this page

Was this helpful?

  1. Spring Boot

@SpringBootConfiguration

所在包:org.springframework.boot

所在 jar: spring-boot.jar

package org.springframework.boot;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.context.annotation.Configuration;

/**
 * Indicates that a class provides Spring Boot application
 * {@link Configuration @Configuration}. Can be used as an alternative to the Spring's
 * standard {@code @Configuration} annotation so that configuration can be found
 * automatically (for example in tests).
 * <p>
 * Application should only ever include <em>one</em> {@code @SpringBootConfiguration} and
 * most idiomatic Spring Boot applications will inherit it from
 * {@code @SpringBootApplication}.
 *
 * @author Phillip Webb
 * @since 1.4.0
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

标识一个提供 Spring Boot application 的 java 配置类,@Configuration 注解表示当前的 java 类是一个配置类。可以作为 Spring 标准 @Configuration 替换方案,配置可以自动被寻找到。

整个项目应用当中应该只包含一个 @SpringBootConfiguration 注解,大多数的 Spring Boot 应用都会直接从 @SpringBootApplication 注解当中继承 @SpringBootConfiguration 注解。

在整个项目应用当中,只使用一次,而且一般是通过使用 @SpringBootApplication 这个注解,达到间接使用 @SpringBootConfiguration 注解。

思考

在 Spring Boot 应用解析的时候,@SpringBootConfiguration 一定是比 @Configuration 做了某些细化或增强,否则直接使用 @Configuration 来注解 @SpringBootApplication 不就可以了?所以 @SpringBootConfiguration 是针对 Spring Boot 这个框架做了某些细化或增强。

Previous@SpringBootApplicationNext@Configuration

Last updated 5 years ago

Was this helpful?