Skip to content

io microsphere spring beans factory annotation AnnotationBeanDefinitionRegistryPostProcessor

github-actions[bot] edited this page Jun 18, 2026 · 18 revisions

AnnotationBeanDefinitionRegistryPostProcessor

Type: Class | Module: microsphere-spring-context | Package: io.microsphere.spring.beans.factory.annotation | Since: 1.0.0

Source: microsphere-spring-context/src/main/java/io/microsphere/spring/beans/factory/annotation/AnnotationBeanDefinitionRegistryPostProcessor.java

Overview

An abstract class for the extension to BeanDefinitionRegistryPostProcessor, which will execute two main registration methods orderly:

- `#registerMainBeanDefinitions(ExposingClassPathBeanDefinitionScanner, String[])` : Scan and register
the main `BeanDefinition BeanDefinitions` that were annotated by
`#getSupportedAnnotationTypes() the supported annotation types`, and then return the `Map` with bean name plus
aliases if present and main `AnnotatedBeanDefinition AnnotatedBeanDefinitions`,
it's allowed to be override

- `#registerExtendedBeanDefinitions(ExposingClassPathBeanDefinitionScanner, Map, String[])` :
 it's mandatory to be override by the sub-class to register secondary `BeanDefinition BeanDefinitions`
 if required

Example Usage

`public class MyAnnotationBeanDefinitionRegistryPostProcessor extends AnnotationBeanDefinitionRegistryPostProcessor {

    public MyAnnotationBeanDefinitionRegistryPostProcessor() {
        super(MyAnnotation.class, "com.example.package");
    `

    protected Map registerMainBeanDefinitions(ExposingClassPathBeanDefinitionScanner scanner,
                                                                                  String[] basePackages) {
        // Custom logic to register main bean definitions
        return super.registerMainBeanDefinitions(scanner, basePackages);
    }

### Declaration

```java
public abstract class AnnotationBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor,
```

**Author:** Mercy

## Version Information

- **Introduced in:** `1.0.0`
- **Current Project Version:** `0.2.27-SNAPSHOT`

## Version Compatibility

This component is tested and compatible with the following Java versions:

| Java Version | Status |
|:---:|:---:|
| Java 17 | ✅ Compatible |
| Java 21 | ✅ Compatible |
| Java 25 | ✅ Compatible |

## Examples

```java
public class MyAnnotationBeanDefinitionRegistryPostProcessor extends AnnotationBeanDefinitionRegistryPostProcessor {

    public MyAnnotationBeanDefinitionRegistryPostProcessor() {
        super(MyAnnotation.class, "com.example.package");
    }

    protected Map registerMainBeanDefinitions(ExposingClassPathBeanDefinitionScanner scanner,
                                                                                  String[] basePackages) {
        // Custom logic to register main bean definitions
        return super.registerMainBeanDefinitions(scanner, basePackages);
    }

    @Override
    protected void registerExtendedBeanDefinitions(ExposingClassPathBeanDefinitionScanner scanner,
                                                   Map mainBeanDefinitions,
                                                   String[] basePackages) {
        // Logic to register extended bean definitions based on main ones
    }
}
```

## Usage

### Maven Dependency

Add the following dependency to your `pom.xml`:

```xml

    io.github.microsphere-projects
    microsphere-spring-context
    ${microsphere-spring.version}

```

> **Tip:** Use the BOM (`microsphere-spring-dependencies`) for consistent version management. See the [Getting Started](https://github.com/microsphere-projects/microsphere-spring#getting-started) guide.

### Import

```java
import io.microsphere.spring.beans.factory.annotation.AnnotationBeanDefinitionRegistryPostProcessor;
```

## API Reference

### Public Methods

| Method | Description |
|--------|-------------|
| `addSupportedAnnotationType` |  |
| `postProcessBeanDefinitionRegistry` |  |
| `postProcessBeanFactory` |  |
| `setBeanClassLoader` |  |
| `getPackagesToScan` |  |
| `getBeanFactory` |  |
| `setBeanFactory` |  |
| `getEnvironment` |  |
| `setEnvironment` |  |
| `getResourceLoader` |  |
| `setResourceLoader` |  |
| `getClassLoader` |  |

---

*This documentation was auto-generated from the source code of [microsphere-spring](https://github.com/microsphere-projects/microsphere-spring).*

Home

spring-context

spring-guice

spring-jdbc

spring-test

spring-web

spring-webflux

spring-webmvc

Clone this wiki locally