Interface BeanRegistrationCodeFragments
- All Known Implementing Classes:
BeanRegistrationCodeFragmentsDecorator
A default implementation is provided that suits most needs and custom code fragments are only expected to be used by library authors having built custom arrangement on top of the core container.
Users are not expected to implement this interface directly, but rather extends
from BeanRegistrationCodeFragmentsDecorator
and only override the
necessary method(s).
- Since:
- 6.0
- Author:
- Phillip Webb, Stephane Nicoll
- See Also:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.javapoet.CodeBlock
generateInstanceSupplierCode
(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, boolean allowDirectSupplierShortcut) Generate the instance supplier code.org.springframework.javapoet.CodeBlock
generateNewBeanDefinitionCode
(GenerationContext generationContext, ResolvableType beanType, BeanRegistrationCode beanRegistrationCode) Generate the code that defines the new bean definition instance.org.springframework.javapoet.CodeBlock
generateReturnCode
(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode) Generate the return statement.org.springframework.javapoet.CodeBlock
generateSetBeanDefinitionPropertiesCode
(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) Generate the code that sets the properties of the bean definition.org.springframework.javapoet.CodeBlock
generateSetBeanInstanceSupplierCode
(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, org.springframework.javapoet.CodeBlock instanceSupplierCode, List<MethodReference> postProcessors) Generate the code that sets the instance supplier on the bean definition.org.springframework.javapoet.ClassName
getTarget
(RegisteredBean registeredBean) Return the target for the registration.
-
Field Details
-
BEAN_DEFINITION_VARIABLE
The variable name to used when creating the bean definition.- See Also:
-
INSTANCE_SUPPLIER_VARIABLE
The variable name to used when creating the bean definition.- See Also:
-
-
Method Details
-
getTarget
Return the target for the registration. Used to determine where to write the code. This should take into account visibility issue, such as package access of an element of the bean to register.- Parameters:
registeredBean
- the registered bean- Returns:
- the target
ClassName
-
generateNewBeanDefinitionCode
org.springframework.javapoet.CodeBlock generateNewBeanDefinitionCode(GenerationContext generationContext, ResolvableType beanType, BeanRegistrationCode beanRegistrationCode) Generate the code that defines the new bean definition instance.This should declare a variable named "beanDefinition" so that further fragments can refer to the variable to further tune the bean definition.
- Parameters:
generationContext
- the generation contextbeanType
- the bean typebeanRegistrationCode
- the bean registration code- Returns:
- the generated code
-
generateSetBeanDefinitionPropertiesCode
org.springframework.javapoet.CodeBlock generateSetBeanDefinitionPropertiesCode(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) Generate the code that sets the properties of the bean definition.- Parameters:
generationContext
- the generation contextbeanRegistrationCode
- the bean registration codeattributeFilter
- any attribute filtering that should be applied- Returns:
- the generated code
-
generateSetBeanInstanceSupplierCode
org.springframework.javapoet.CodeBlock generateSetBeanInstanceSupplierCode(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, org.springframework.javapoet.CodeBlock instanceSupplierCode, List<MethodReference> postProcessors) Generate the code that sets the instance supplier on the bean definition.The
postProcessors
represent methods to be exposed once the instance has been created to further configure it. Each method should accept two parameters, theRegisteredBean
and the bean instance, and should return the modified bean instance.- Parameters:
generationContext
- the generation contextbeanRegistrationCode
- the bean registration codeinstanceSupplierCode
- the instance supplier code supplier codepostProcessors
- any instance post processors that should be applied- Returns:
- the generated code
- See Also:
-
generateInstanceSupplierCode
org.springframework.javapoet.CodeBlock generateInstanceSupplierCode(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode, boolean allowDirectSupplierShortcut) Generate the instance supplier code.- Parameters:
generationContext
- the generation contextbeanRegistrationCode
- the bean registration codeallowDirectSupplierShortcut
- if direct suppliers may be used rather than always needing anInstanceSupplier
- Returns:
- the generated code
-
generateReturnCode
org.springframework.javapoet.CodeBlock generateReturnCode(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode) Generate the return statement.- Parameters:
generationContext
- the generation contextbeanRegistrationCode
- the bean registration code- Returns:
- the generated code
-