09 — Advanced
Configuration Reference
This page collects every configuration property, bean name constant, and auto-configured bean in one place for quick reference.
Application Properties
| Property | Default | Description |
|---|---|---|
| rulii.converts.registerDefaults | true | Register rulii's built-in type converters. Set to false to use only custom converters. |
Bean Name Constants
The BeanNames class defines the internal bean names used by rulii-spring. Use these constants when you need to reference beans by name (e.g., in @Qualifier annotations).
| Constant | Value | Bean Type |
|---|---|---|
| OBJECT_FACTORY_NAME | "rulii.objectFactory" | ObjectFactory |
| SPRING_CONVERTER_REGISTRY | "rulii.converterRegistry" | ConverterRegistry |
| RULE_REGISTRY | "rulii.ruleRegistry" | RuleRegistry |
Auto-Configured Beans
All beans are defined in RuleConfig and can be overridden by declaring your own @Bean of the same type.
| Bean Type | Default Implementation | Named Bean? |
|---|---|---|
| BindingMatchingStrategy | Default (builder) | No |
| ParameterResolver | Default (builder) | No |
| MessageResolver | SpringEnvironmentMessageResolver | No |
| MessageFormatter | Default (builder) | No |
| ObjectFactory | SpringObjectFactory | rulii.objectFactory |
| ConverterRegistry | Default + SpringConverterAdapter | rulii.converterRegistry |
| RuleRegistry | SpringRuleRegistry | rulii.ruleRegistry |
| RuleContextOptions | SpringEnabledRuleContextOptions | No |
| RuleBeanDefinitionRegistryPostProcessor | Fallback scanner | No |
Bean Dependency Diagram
The following shows how the auto-configured beans relate to each other:
RuleContextOptions
├── BindingMatchingStrategy
├── ParameterResolver
├── MessageFormatter
├── MessageResolver
│ └── SpringEnvironmentMessageResolver
│ └── Environment
├── ObjectFactory
│ └── SpringObjectFactory
│ └── AutowireCapableBeanFactory
└── ConverterRegistry
├── Default converters (if registerDefaults=true)
├── Custom Converter beans
└── SpringConverterAdapter
└── ConversionService
RuleRegistry
└── SpringRuleRegistry
└── ListableBeanFactory
RuleBeanDefinitionRegistryPostProcessor (fallback, if no @RuleScan)
└── AutoConfigurationPackages
Customizing a Bean
To override any auto-configured bean, declare your own with the matching type. For example, to customize the RuleContextOptions:
@Configuration
public class CustomRuleConfig {
@Bean
public RuleContextOptions ruleContextOptions(
BindingMatchingStrategy matchingStrategy,
ParameterResolver parameterResolver,
MessageFormatter messageFormatter,
ConverterRegistry converterRegistry,
ObjectFactory objectFactory,
MessageResolver messageResolver) {
return new SpringEnabledRuleContextOptions(
matchingStrategy, parameterResolver, messageFormatter,
converterRegistry, objectFactory, messageResolver,
Executors.newVirtualThreadPerTaskExecutor(), // virtual threads!
Clock.systemUTC(), // UTC clock
Locale.ENGLISH); // fixed locale
}
}
Package Structure
org.rulii.spring
├── annotation
│ └── RuleScan
├── bind.load
│ └── SpringContextBindingLoader
├── config
│ ├── BeanNames
│ ├── RuleConfig
│ ├── RuleBeanBuilder
│ ├── RuleBeanDefinitionRegistryPostProcessor
│ ├── RuleBeanDefinitionScanner
│ ├── RuleRegistrar
│ └── RuleRegistrarMetaInfo
├── context
│ └── SpringEnabledRuleContextOptions
├── convert
│ ├── ResolvableTypeDescriptor
│ └── SpringConverterAdapter
├── factory
│ └── SpringObjectFactory
├── registry
│ └── SpringRuleRegistry
└── text
└── SpringEnvironmentMessageResolver