fix: order redis session auto configuration

This commit is contained in:
lingniu
2026-07-01 17:14:52 +08:00
parent 37844e4425
commit 71353a3cb4
2 changed files with 16 additions and 1 deletions

View File

@@ -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 {

View File

@@ -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