Java Spring Boot如何创建自动配置类

Java Spring Boot如何创建自动配置类,java,spring-mvc,spring-boot,annotations,xml-configuration,Java,Spring Mvc,Spring Boot,Annotations,Xml Configuration,我是弹簧靴的初学者。当我在Spring Boot中使用任何依赖项时,它们都具有自动配置默认值 我的问题是: 什么是真正的自动配置类 自动配置是如何工作的 如何制定自己的自动配置 请向我推荐任何描述简易方式的博客,或者请提供任何代码片段,以便我更好地理解。Spring Boot核心包Spring Boot starter包含Spring Boot autoconfigure包 它做什么?(来自JavaDoc) 启用Spring应用程序上下文的自动配置, 尝试猜测和配置您可能需要的bean。 自动配

我是弹簧靴的初学者。当我在Spring Boot中使用任何依赖项时,它们都具有自动配置默认值

我的问题是:

  • 什么是真正的自动配置类
  • 自动配置是如何工作的
  • 如何制定自己的自动配置

  • 请向我推荐任何描述简易方式的博客,或者请提供任何代码片段,以便我更好地理解。

    Spring Boot核心包
    Spring Boot starter
    包含
    Spring Boot autoconfigure

    它做什么?(来自JavaDoc)

    启用Spring应用程序上下文的自动配置, 尝试猜测和配置您可能需要的bean。 自动配置类通常基于类路径应用 以及您定义的bean。例如,如果你有 tomcat-embedded.jar在类路径上可能需要 TomcatEmbeddedServletContainerFactory(除非您已定义 自己的EmbeddedServletContainerFactorybean)

    自动配置尝试尽可能智能化,并将 当您定义更多自己的配置时,请后退。你总是可以 手动排除()您永远不想应用的任何配置(使用 excludeName(),如果您没有访问权限)。您还可以排除 通过spring.autoconfigure.exclude属性将它们删除。自动配置 始终在注册用户定义的bean之后应用

    因此,Spring可以自动配置类路径中的每个jar,Spring将自动配置供您在应用程序中使用。想想Hibernate、ThymeLeaf、Jackson等

    如何使用它?

    只需在应用程序中添加
    @EnableAutoConfiguration
    ,即可使Spring自动配置应用程序(您可能还需要
    @SpringBootConfiguration

    还有你的好去处

    它可以为您配置什么? 下面所有这些工具(通过查看org.springframework.boot.autoconfigure包获得)

    如何创建自己的配置?


    不知道,从来没必要这么做。但是这是一个很好的起点。

    你的第一个问题到底在问什么?我想知道自动配置在spring boot中是如何工作的,这是我的问题。。Stackoverflow不会取代阅读文档+做教程。请求博客链接(或任何其他非网站资源)或请求“给我代码”是离题的:请参阅和页面。感谢您分享@Yoshuanahar
    @SpringBootConfiguration
    @EnableAutoConfiguration
    // Or just @SpringBootApplication instead of the 2 above
    @Import(AppConfig.class)
    public class App {
      public static void main(String[] args) {
        SpringApplication.run(App.class);
      }
    }
    
    admin
    amqp
    aop
    batch
    cache
    cassandra
    cloud
    condition
    context
    couchbase
    dao
    data
    analyzer
    domain
    jest
    flyway
    freemarker
    template
    gson
    h2
    hateoas
    hazelcast
    info
    integration
    jackson
    jdbc
    jersey
    jms
    jmx
    jooq
    kafka
    ldap
    liquibase
    logging
    mail
    mobile
    mongo
    mustache
    jpa
    reactor
    security
    sendgrid
    session
    social
    solr
    template
    thymeleaf
    transaction
    validation
    web
    webservices
    websocket