Class JCacheXDistributedAutoConfiguration


  • @Configuration
    @ConditionalOnClass({io.github.dhruv1110.jcachex.distributed.DistributedCache.class,io.github.dhruv1110.jcachex.distributed.NetworkProtocol.class})
    @ConditionalOnProperty(prefix="jcachex.distributed",
                           name="enabled",
                           havingValue="true")
    @EnableConfigurationProperties(JCacheXProperties.class)
    @AutoConfigureAfter(JCacheXAutoConfiguration.class)
    public class JCacheXDistributedAutoConfiguration
    extends Object
    Auto-configuration for JCacheX distributed cache integration.

    This configuration provides seamless integration between JCacheX distributed caching and Spring Boot applications, enabling automatic cluster formation, node discovery, and distributed cache management.

    Key Features:

    • Automatic Cluster Formation: Configures distributed caches based on properties
    • Multiple Consistency Models: Supports strong, eventual, and session consistency
    • Environment-Aware: Adapts to different deployment environments
    • Network Protocol Support: TCP, UDP, HTTP, and WebSocket protocols
    • Replication Configuration: Configurable replication factors and strategies

    Configuration Properties:

    
     jcachex:
       distributed:
         enabled: true
         clusterName: "my-cluster"
         nodes:
           - "cache-1:8080"
           - "cache-2:8080"
           - "cache-3:8080"
         replicationFactor: 2
         consistencyLevel: EVENTUAL
         networkProtocol: TCP
         serialization: KRYO
         compression: LZ4
         encryption: true
       caches:
         users:
           distributed:
             enabled: true
             replicationFactor: 3
             consistencyLevel: STRONG
     

    Usage Examples:

     {
         @code
         @Service
         public class UserService {
    
    Since:
    1.0.0
    See Also:
    JCacheXAutoConfiguration, JCacheXDistributedCacheManager, JCacheXProperties
    • Constructor Detail

      • JCacheXDistributedAutoConfiguration

        public JCacheXDistributedAutoConfiguration​(JCacheXProperties properties)
    • Method Detail

      • networkProtocol

        @Bean
        @ConditionalOnMissingBean(io.github.dhruv1110.jcachex.distributed.NetworkProtocol.class)
        public io.github.dhruv1110.jcachex.distributed.NetworkProtocol networkProtocol()
        Creates network protocol configuration for distributed communication.
        Returns:
        configured network protocol