diff --git a/modules/core/session-core/src/main/java/com/lingniu/ingest/session/config/SessionCoreAutoConfiguration.java b/modules/core/session-core/src/main/java/com/lingniu/ingest/session/config/SessionCoreAutoConfiguration.java index d742db71..29f9497e 100644 --- a/modules/core/session-core/src/main/java/com/lingniu/ingest/session/config/SessionCoreAutoConfiguration.java +++ b/modules/core/session-core/src/main/java/com/lingniu/ingest/session/config/SessionCoreAutoConfiguration.java @@ -6,6 +6,7 @@ import com.lingniu.ingest.session.RedisSessionStore; import com.lingniu.ingest.session.SessionProperties; import com.lingniu.ingest.session.SessionStore; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -13,7 +14,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; import org.springframework.data.redis.core.StringRedisTemplate; -@AutoConfiguration +@AutoConfiguration(after = RedisAutoConfiguration.class) @EnableConfigurationProperties(SessionProperties.class) public class SessionCoreAutoConfiguration { diff --git a/modules/core/session-core/src/test/java/com/lingniu/ingest/session/config/SessionCoreAutoConfigurationTest.java b/modules/core/session-core/src/test/java/com/lingniu/ingest/session/config/SessionCoreAutoConfigurationTest.java index 06cdf40b..2d13d90d 100644 --- a/modules/core/session-core/src/test/java/com/lingniu/ingest/session/config/SessionCoreAutoConfigurationTest.java +++ b/modules/core/session-core/src/test/java/com/lingniu/ingest/session/config/SessionCoreAutoConfigurationTest.java @@ -4,6 +4,7 @@ import com.lingniu.ingest.session.RedisSessionStore; import com.lingniu.ingest.session.SessionStore; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.data.redis.core.StringRedisTemplate; @@ -52,6 +53,19 @@ class SessionCoreAutoConfigurationTest { }); } + @Test + void waitsForRedisAutoConfigurationBeforeCheckingRedisTemplateBean() { + new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of( + SessionCoreAutoConfiguration.class, + RedisAutoConfiguration.class)) + .run(context -> { + assertThat(context).hasSingleBean(StringRedisTemplate.class); + assertThat(context).hasSingleBean(SessionStore.class); + assertThat(context).hasSingleBean(RedisSessionStore.class); + }); + } + @Test void rejectsMemorySessionStoreModeWithRedisOnlyRule() { contextRunner