Spring Boot @EnableAutoConfiguration注解示例

x33g5p2x  于2022-10-06 转载在 Spring  
字(1.8k)|赞(0)|评价(0)|浏览(357)

在这篇文章中,我们将讨论注解@EnableAutoConfiguration的重要性,并举一个例子来让你开始。让我们开始吧!

@EnableAutoConfiguration注解概述

@EnableAutoConfiguration注解告诉Spring Boot根据你添加的jar依赖项来 "猜测 "你想如何配置Spring。 

由于 spring-boot-starter-web 依赖项被添加到 classpath 中,导致配置 TomcatSpring MVC,自动配置假定你正在开发一个 Web 应用程序并相应地设置 Spring。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

当使用@SpringBootApplication注解时,上下文的自动配置被自动启用,因此,添加该注解没有额外的效果。
下图显示了@EnableAutoConfiguration的内部实现。

@EnableAutoConfiguration 注解示例

让我们将@EnableAutoConfiguration注解添加到Application类或Main类中,以在Spring boot项目中启用自动配置功能。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@EnableAutoConfiguration
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@EnableAutoConfiguration注解可选元素

  • Class<?>[] exclude 排除特定的自动配置类,使其永不被应用。
  • String[] excludeName - 排除特定的自动配置类名称,这样它们将永远不会被应用。

禁用特定的自动配置类

如果你发现你不想要的特定自动配置类正在被应用,你可以使用@EnableAutoConfiguration的排除属性来禁用它们,如下例所示。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

我们可以使用注解的excludeName属性并指定完全合格的名称来代替。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@EnableAutoConfiguration(excludeName = {"org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration",
"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

相关文章

微信公众号

最新文章

更多