# 43.1 理解自动配置的beans

从底层来讲，自动配置（auto-configuration）是通过标准的`@Configuration`类实现的。此外，`@Conditional`注解用来约束自动配置生效的条件。通常自动配置类需要使用`@ConditionalOnClass`和`@ConditionalOnMissingBean`注解，这是为了确保只有在相关的类被发现及没有声明自定义的`@Configuration`时才应用自动配置，具体查看[`spring-boot-autoconfigure`](https://github.com/spring-projects/spring-boot/tree/v1.4.1.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure)源码中的`@Configuration`类（`META-INF/spring.factories`文件）。
