Class ExcludeDbTrait
java.lang.Object
io.github.xezzon.zeroweb.common.marker.ExcludeDbTrait
- All Implemented Interfaces:
org.springframework.context.annotation.ImportBeanDefinitionRegistrar
@TestOnly
public class ExcludeDbTrait
extends Object
implements org.springframework.context.annotation.ImportBeanDefinitionRegistrar
ExcludeDbTrait 是一个用于在测试环境中排除所有 DbTrait 类型 Bean 定义的 ImportBeanDefinitionRegistrar。
它主要用于单元测试或集成测试,以确保数据库相关的 Bean 不被加载,从而隔离测试环境,避免不必要的数据库操作。
通过实现 ImportBeanDefinitionRegistrar 接口,它可以在 Spring 容器启动时动态地注册或修改 Bean 定义。
- Author:
- xezzon
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidregisterBeanDefinitions(@NonNull org.springframework.core.type.AnnotationMetadata metadata, @NonNull org.springframework.beans.factory.support.BeanDefinitionRegistry registry) 注册 Bean 定义的回调方法。Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.annotation.ImportBeanDefinitionRegistrar
registerBeanDefinitions
-
Constructor Details
-
ExcludeDbTrait
public ExcludeDbTrait()
-
-
Method Details
-
registerBeanDefinitions
public void registerBeanDefinitions(@NonNull org.springframework.core.type.AnnotationMetadata metadata, @NonNull org.springframework.beans.factory.support.BeanDefinitionRegistry registry) 注册 Bean 定义的回调方法。此方法会在 Spring 容器初始化期间被调用。
在此实现中,如果
registry是一个ListableBeanFactory的实例, 它将查找所有类型为DbTrait的 Bean 定义,并从注册表中移除它们。 这有效地阻止了任何实现了DbTrait接口的 Bean 被 Spring 容器加载, 从而在测试环境中排除了数据库相关的组件。- Specified by:
registerBeanDefinitionsin interfaceorg.springframework.context.annotation.ImportBeanDefinitionRegistrar- Parameters:
metadata- 当前正在处理的@Configuration类的注解元数据。registry- 用于注册 Bean 定义的注册表。
-