commit
ca1bd3f633
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -38,8 +38,9 @@ import org.springframework.core.annotation.AliasFor;
|
|||
* {@link Configuration#proxyBeanMethods() proxyBeanMethods} is always {@code false}. They
|
||||
* are located using {@link ImportCandidates}.
|
||||
* <p>
|
||||
* Generally auto-configuration classes are marked as {@link Conditional @Conditional}
|
||||
* (most often using {@link ConditionalOnClass @ConditionalOnClass} and
|
||||
* Generally, auto-configuration classes are top-level classes that are marked as
|
||||
* {@link Conditional @Conditional} (most often using
|
||||
* {@link ConditionalOnClass @ConditionalOnClass} and
|
||||
* {@link ConditionalOnMissingBean @ConditionalOnMissingBean} annotations).
|
||||
*
|
||||
* @author Moritz Halbritter
|
||||
|
|
@ -76,28 +77,34 @@ public @interface AutoConfiguration {
|
|||
String value() default "";
|
||||
|
||||
/**
|
||||
* The auto-configure classes that should have not yet been applied.
|
||||
* The auto-configuration classes that should have not yet been applied.
|
||||
* @return the classes
|
||||
*/
|
||||
@AliasFor(annotation = AutoConfigureBefore.class, attribute = "value")
|
||||
Class<?>[] before() default {};
|
||||
|
||||
/**
|
||||
* The names of the auto-configure classes that should have not yet been applied.
|
||||
* The names of the auto-configuration classes that should have not yet been applied.
|
||||
* In the unusual case that an auto-configuration class is not a top-level class, its
|
||||
* name should use {@code $} to separate it from its containing class, for example
|
||||
* {@code com.example.Outer$NestedAutoConfiguration}.
|
||||
* @return the class names
|
||||
*/
|
||||
@AliasFor(annotation = AutoConfigureBefore.class, attribute = "name")
|
||||
String[] beforeName() default {};
|
||||
|
||||
/**
|
||||
* The auto-configure classes that should have already been applied.
|
||||
* The auto-configuration classes that should have already been applied.
|
||||
* @return the classes
|
||||
*/
|
||||
@AliasFor(annotation = AutoConfigureAfter.class, attribute = "value")
|
||||
Class<?>[] after() default {};
|
||||
|
||||
/**
|
||||
* The names of the auto-configure classes that should have already been applied.
|
||||
* The names of the auto-configuration classes that should have already been applied.
|
||||
* In the unusual case that an auto-configuration class is not a top-level class, its
|
||||
* class name should use {@code $} to separate it from its containing class, for
|
||||
* example {@code com.example.Outer$NestedAutoConfiguration}.
|
||||
* @return the class names
|
||||
*/
|
||||
@AliasFor(annotation = AutoConfigureAfter.class, attribute = "name")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -44,14 +44,16 @@ import org.springframework.context.annotation.DependsOn;
|
|||
public @interface AutoConfigureAfter {
|
||||
|
||||
/**
|
||||
* The auto-configure classes that should have already been applied.
|
||||
* The auto-configuration classes that should have already been applied.
|
||||
* @return the classes
|
||||
*/
|
||||
Class<?>[] value() default {};
|
||||
|
||||
/**
|
||||
* The names of the auto-configure classes that should have already been applied.
|
||||
* @return the class names
|
||||
* The names of the auto-configuration classes that should have already been applied.
|
||||
* In the unusual case that an auto-configuration class is not a top-level class, its
|
||||
* class name should use {@code $} to separate it from its containing class, for
|
||||
* example {@code com.example.Outer$NestedAutoConfiguration}.
|
||||
* @since 1.2.2
|
||||
*/
|
||||
String[] name() default {};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -50,7 +50,10 @@ public @interface AutoConfigureBefore {
|
|||
Class<?>[] value() default {};
|
||||
|
||||
/**
|
||||
* The names of the auto-configure classes that should have not yet been applied.
|
||||
* The names of the auto-configuration classes that should have not yet been applied.
|
||||
* In the unusual case that an auto-configuration class is not a top-level class, its
|
||||
* class name should use {@code $} to separate it from its containing class, for
|
||||
* example {@code com.example.Outer$NestedAutoConfiguration}.
|
||||
* @return the class names
|
||||
* @since 1.2.2
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration
|
|||
|
||||
TIP: You can add comments to the imports file using the `#` character.
|
||||
|
||||
TIP: In the unusual case that an auto-configuration class is not a top-level class, its class name should use `$` to separate it from its containing class, for example `com.example.Outer$NestedAutoConfiguration`.
|
||||
|
||||
NOTE: Auto-configurations must be loaded _only_ by being named in the imports file.
|
||||
Make sure that they are defined in a specific package space and that they are never the target of component scanning.
|
||||
Furthermore, auto-configuration classes should not enable component scanning to find additional components.
|
||||
|
|
|
|||
Loading…
Reference in New Issue