diff --git a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/EnableSpringHttpSession.java b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/EnableSpringHttpSession.java index 4c76d737b..af2387ee7 100644 --- a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/EnableSpringHttpSession.java +++ b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/EnableSpringHttpSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.session.SessionRepository; import org.springframework.session.events.SessionCreatedEvent; @@ -34,7 +33,7 @@ * *
  * 
- * {@literal @Configuration}
+ * {@literal @Configuration(proxyBeanMethods = false)}
  * {@literal @EnableSpringHttpSession}
  * public class SpringHttpSessionConfig {
  *
@@ -74,7 +73,6 @@
 @Target({ java.lang.annotation.ElementType.TYPE })
 @Documented
 @Import(SpringHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableSpringHttpSession {
 
 }
diff --git a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/server/EnableSpringWebSession.java b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/server/EnableSpringWebSession.java
index 0f87aeeda..9b8ec34bb 100644
--- a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/server/EnableSpringWebSession.java
+++ b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/server/EnableSpringWebSession.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 /**
@@ -31,7 +30,7 @@
  *
  * 
  * 
- * {@literal @Configuration}
+ * {@literal @Configuration(proxyBeanMethods = false)}
  * {@literal @EnableSpringWebSession}
  * public class SpringWebFluxConfig {
  *
@@ -50,7 +49,6 @@
 @Target({ java.lang.annotation.ElementType.TYPE })
 @Documented
 @Import(SpringWebSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableSpringWebSession {
 
 }
diff --git a/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/server/SpringWebSessionConfigurationTests.java b/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/server/SpringWebSessionConfigurationTests.java
index 6d9a8e712..0d9b91447 100644
--- a/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/server/SpringWebSessionConfigurationTests.java
+++ b/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/server/SpringWebSessionConfigurationTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@
 import org.springframework.beans.factory.UnsatisfiedDependencyException;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.session.ReactiveMapSessionRepository;
 import org.springframework.session.ReactiveSessionRepository;
 import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
@@ -105,6 +106,7 @@ void providedSessionIdResolverShouldBePickedUpAutomatically() {
 	/**
 	 * A configuration with all the right parts.
 	 */
+	@Configuration(proxyBeanMethods = false)
 	@EnableSpringWebSession
 	static class GoodConfig {
 
@@ -122,11 +124,13 @@ ReactiveSessionRepository reactiveSessionRepository() {
 	/**
 	 * A configuration where no {@link ReactiveSessionRepository} is defined. It's BAD!
 	 */
+	@Configuration(proxyBeanMethods = false)
 	@EnableSpringWebSession
 	static class BadConfig {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableSpringWebSession
 	static class OverrideSessionIdResolver {
 
diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/EnableMongoHttpSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/EnableMongoHttpSession.java
index c346f58d2..d337f4f36 100644
--- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/EnableMongoHttpSession.java
+++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/EnableMongoHttpSession.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2016 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
 
@@ -34,6 +33,7 @@
  *
  * 
  * 
+ * {@literal @Configuration(proxyBeanMethods = false)}
  * {@literal @EnableMongoHttpSession}
  * public class MongoHttpSessionConfig {
  *
@@ -52,7 +52,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(MongoHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableMongoHttpSession {
 
 	/**
diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/EnableMongoWebSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/EnableMongoWebSession.java
index 9f7def2c4..ae567bb73 100644
--- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/EnableMongoWebSession.java
+++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/EnableMongoWebSession.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.session.data.mongo.ReactiveMongoSessionRepository;
 
@@ -32,7 +31,7 @@
  *
  * 
  * 
- * {@literal @Configuration}
+ * {@literal @Configuration(proxyBeanMethods = false)}
  * {@literal @EnableMongoWebSession}
  * public class SpringWebFluxConfig {
  *
@@ -52,7 +51,6 @@
 @Target({ java.lang.annotation.ElementType.TYPE })
 @Documented
 @Import(ReactiveMongoWebSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableMongoWebSession {
 
 	/**
diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java
index b1043dcf0..f6a12b1bb 100644
--- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java
+++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2017 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -286,6 +286,7 @@ PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoHttpSession
 	static class SessionRepositoryCustomizerConfiguration {
 
diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java
index 9f06f4dbd..842cc375c 100644
--- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java
+++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
 import org.springframework.beans.factory.UnsatisfiedDependencyException;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.data.mongodb.core.ReactiveMongoOperations;
 import org.springframework.data.mongodb.core.index.IndexOperations;
@@ -239,6 +240,7 @@ private AbstractMongoSessionConverter findMongoSessionConverter(ReactiveMongoSes
 	/**
 	 * A configuration with all the right parts.
 	 */
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class GoodConfig {
 
@@ -252,11 +254,13 @@ ReactiveMongoOperations operations() {
 	/**
 	 * A configuration where no {@link ReactiveMongoOperations} is defined. It's BAD!
 	 */
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class BadConfig {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class OverrideSessionConverterConfig {
 
@@ -272,6 +276,7 @@ AbstractMongoSessionConverter mongoSessionConverter() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession(maxInactiveIntervalInSeconds = 123, collectionName = "test-case")
 	static class OverrideMongoParametersConfig {
 
@@ -282,6 +287,7 @@ ReactiveMongoOperations operations() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class ConfigWithReactiveAndImperativeMongoOperations {
 
@@ -308,6 +314,7 @@ MongoOperations mongoOperations(IndexOperations indexOperations) {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableSpringWebSession
 	static class CustomizedReactiveConfiguration extends ReactiveMongoWebSessionConfiguration {
 
@@ -324,6 +331,7 @@ ReactiveMongoOperations reactiveMongoOperations() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class SessionRepositoryCustomizerConfiguration {
 
@@ -346,6 +354,7 @@ ReactiveSessionRepositoryCustomizer sessionRepos
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class CustomIndexResolverConfigurationWithDefaultMongoSessionConverter {
 
@@ -362,6 +371,7 @@ IndexResolver indexResolver() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableMongoWebSession
 	static class CustomIndexResolverConfigurationWithProvidedtMongoSessionConverter {
 
diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisHttpSession.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisHttpSession.java
index df59fc61b..6938f4bb4 100644
--- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisHttpSession.java
+++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisHttpSession.java
@@ -22,7 +22,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.session.FlushMode;
@@ -41,7 +40,7 @@
  * single {@link RedisConnectionFactory} must be provided. For example:
  *
  * 
- * @Configuration
+ * @Configuration(proxyBeanMethods = false)
  * @EnableRedisHttpSession
  * public class RedisHttpSessionConfig {
  *
@@ -64,7 +63,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(RedisHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableRedisHttpSession {
 
 	/**
diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisIndexedHttpSession.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisIndexedHttpSession.java
index f483fe338..8be4a5be5 100644
--- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisIndexedHttpSession.java
+++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/EnableRedisIndexedHttpSession.java
@@ -22,7 +22,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.session.FlushMode;
@@ -41,7 +40,7 @@
  * annotation, a single {@link RedisConnectionFactory} must be provided. For example:
  *
  * 
- * @Configuration
+ * @Configuration(proxyBeanMethods = false)
  * @EnableRedisIndexedHttpSession
  * public class RedisHttpSessionConfig {
  *
@@ -64,7 +63,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(RedisIndexedHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableRedisIndexedHttpSession {
 
 	/**
diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisWebSession.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisWebSession.java
index e1f6f9637..a1fe5445b 100644
--- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisWebSession.java
+++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisWebSession.java
@@ -22,7 +22,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
 import org.springframework.session.MapSession;
@@ -38,7 +37,7 @@
  * {@link ReactiveRedisConnectionFactory} must be provided. For example:
  *
  * 
- * @Configuration
+ * @Configuration(proxyBeanMethods = false)
  * @EnableRedisWebSession
  * public class RedisWebSessionConfig {
  *
@@ -61,7 +60,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(RedisWebSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableRedisWebSession {
 
 	/**
diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java
index 1eca91b0c..ea3d4f020 100644
--- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java
+++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java
@@ -261,6 +261,7 @@ static class CustomFlushImmediatelyConfiguration {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisHttpSession(saveMode = SaveMode.ALWAYS)
 	static class CustomSaveModeExpressionAnnotationConfiguration {
 
@@ -342,6 +343,7 @@ static class CustomRedisHttpSessionConfiguration2 {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisHttpSession
 	static class SessionRepositoryCustomizerConfiguration {
 
diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java
index fca38d7f2..d9b96d639 100644
--- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java
+++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java
@@ -296,11 +296,13 @@ static class CustomFlushImmediatelyConfiguration {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisIndexedHttpSession(cleanupCron = CLEANUP_CRON_EXPRESSION)
 	static class CustomCleanupCronExpressionAnnotationConfiguration {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisIndexedHttpSession(saveMode = SaveMode.ALWAYS)
 	static class CustomSaveModeExpressionAnnotationConfiguration {
 
@@ -405,6 +407,7 @@ RedisMessageListenerContainer redisMessageListenerContainer() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisIndexedHttpSession
 	static class SessionRepositoryCustomizerConfiguration {
 
diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java
index 2b7041caf..af5e1518b 100644
--- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java
+++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java
@@ -240,11 +240,13 @@ ReactiveRedisConnectionFactory defaultRedisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class DefaultConfig {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class SpringSessionRedisOperationsResolvingConfig {
 
@@ -257,16 +259,19 @@ ReactiveRedisOperations getSpringSessionRedisOperations() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession(redisNamespace = REDIS_NAMESPACE)
 	static class CustomNamespaceConfig {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession(maxInactiveIntervalInSeconds = MAX_INACTIVE_INTERVAL_IN_SECONDS)
 	static class CustomMaxInactiveIntervalConfig {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession(saveMode = SaveMode.ALWAYS)
 	static class CustomSaveModeExpressionAnnotationConfiguration {
 
@@ -281,6 +286,7 @@ static class CustomSaveModeExpressionSetterConfiguration extends RedisWebSession
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class QualifiedConnectionFactoryRedisConfig {
 
@@ -292,6 +298,7 @@ ReactiveRedisConnectionFactory qualifiedRedisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class PrimaryConnectionFactoryRedisConfig {
 
@@ -303,6 +310,7 @@ ReactiveRedisConnectionFactory primaryRedisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class QualifiedAndPrimaryConnectionFactoryRedisConfig {
 
@@ -320,6 +328,7 @@ ReactiveRedisConnectionFactory primaryRedisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class NamedConnectionFactoryRedisConfig {
 
@@ -330,6 +339,7 @@ ReactiveRedisConnectionFactory redisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class MultipleConnectionFactoryRedisConfig {
 
@@ -340,6 +350,7 @@ ReactiveRedisConnectionFactory secondaryRedisConnectionFactory() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class CustomRedisSerializerConfig {
 
@@ -351,6 +362,7 @@ RedisSerializer springSessionDefaultRedisSerializer() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableRedisWebSession
 	static class SessionRepositoryCustomizerConfiguration {
 
diff --git a/spring-session-docs/modules/ROOT/examples/java/docs/SpringWebSessionConfig.java b/spring-session-docs/modules/ROOT/examples/java/docs/SpringWebSessionConfig.java
index 69e22fcae..ccf19beb2 100644
--- a/spring-session-docs/modules/ROOT/examples/java/docs/SpringWebSessionConfig.java
+++ b/spring-session-docs/modules/ROOT/examples/java/docs/SpringWebSessionConfig.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,11 +19,13 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.session.ReactiveMapSessionRepository;
 import org.springframework.session.ReactiveSessionRepository;
 import org.springframework.session.config.annotation.web.server.EnableSpringWebSession;
 
 // tag::class[]
+@Configuration(proxyBeanMethods = false)
 @EnableSpringWebSession
 public class SpringWebSessionConfig {
 
diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/EnableHazelcastHttpSession.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/EnableHazelcastHttpSession.java
index 9820ffb78..8d4429274 100644
--- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/EnableHazelcastHttpSession.java
+++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/EnableHazelcastHttpSession.java
@@ -24,7 +24,6 @@
 
 import com.hazelcast.core.HazelcastInstance;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.session.FlushMode;
 import org.springframework.session.MapSession;
@@ -41,7 +40,7 @@
  * {@link HazelcastInstance} must be provided. For example:
  *
  * 
- * @Configuration
+ * @Configuration(proxyBeanMethods = false)
  * @EnableHazelcastHttpSession
  * public class HazelcastHttpSessionConfig {
  *
@@ -67,7 +66,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(HazelcastHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableHazelcastHttpSession {
 
 	/**
diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java
index 09cc74835..c2ad829d5 100644
--- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java
+++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java
@@ -300,6 +300,7 @@ static class CustomFlushImmediatelySetConfiguration extends HazelcastHttpSession
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableHazelcastHttpSession(saveMode = SaveMode.ALWAYS)
 	static class CustomSaveModeExpressionAnnotationConfiguration {
 
@@ -414,6 +415,7 @@ HazelcastInstance secondaryHazelcastInstance() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableHazelcastHttpSession
 	static class CustomIndexResolverConfiguration extends BaseConfiguration {
 
@@ -425,6 +427,7 @@ IndexResolver indexResolver() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableHazelcastHttpSession
 	static class SessionRepositoryCustomizerConfiguration extends BaseConfiguration {
 
diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractJdbcIndexedSessionRepositoryITests.java
index ea7522163..293e6f6ce 100644
--- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractJdbcIndexedSessionRepositoryITests.java
+++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractJdbcIndexedSessionRepositoryITests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2020 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.jdbc.core.JdbcOperations;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -827,6 +828,7 @@ private String getChangedSecurityName() {
 		return this.changedContext.getAuthentication().getName();
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class BaseConfig {
 
diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/EnableJdbcHttpSession.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/EnableJdbcHttpSession.java
index 5763a6147..2f7698eaa 100644
--- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/EnableJdbcHttpSession.java
+++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/EnableJdbcHttpSession.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
 
 import javax.sql.DataSource;
 
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.session.FlushMode;
 import org.springframework.session.MapSession;
@@ -42,7 +41,7 @@
  * {@link DataSource} must be provided. For example:
  *
  * 
- * @Configuration
+ * @Configuration(proxyBeanMethods = false)
  * @EnableJdbcHttpSession
  * public class JdbcHttpSessionConfig {
  *
@@ -77,7 +76,6 @@
 @Target(ElementType.TYPE)
 @Documented
 @Import(JdbcHttpSessionConfiguration.class)
-@Configuration(proxyBeanMethods = false)
 public @interface EnableJdbcHttpSession {
 
 	/**
diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java
index 1461458cc..27d3857f3 100644
--- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java
+++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java
@@ -317,6 +317,7 @@ private void registerAndRefresh(Class... annotatedClasses) {
 		this.context.refresh();
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class NoDataSourceConfiguration {
 
@@ -337,11 +338,13 @@ PlatformTransactionManager transactionManager() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class DefaultConfiguration {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(tableName = TABLE_NAME)
 	static class CustomTableNameAnnotationConfiguration {
 
@@ -356,6 +359,7 @@ static class CustomTableNameSetterConfiguration extends JdbcHttpSessionConfigura
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(maxInactiveIntervalInSeconds = MAX_INACTIVE_INTERVAL_IN_SECONDS)
 	static class CustomMaxInactiveIntervalInSecondsAnnotationConfiguration {
 
@@ -370,6 +374,7 @@ static class CustomMaxInactiveIntervalInSecondsSetterConfiguration extends JdbcH
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(cleanupCron = CLEANUP_CRON_EXPRESSION)
 	static class CustomCleanupCronExpressionAnnotationConfiguration {
 
@@ -384,6 +389,7 @@ static class CustomCleanupCronExpressionSetterConfiguration extends JdbcHttpSess
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(flushMode = FlushMode.IMMEDIATE)
 	static class CustomFlushModeExpressionAnnotationConfiguration {
 
@@ -398,6 +404,7 @@ static class CustomFlushModeExpressionSetterConfiguration extends JdbcHttpSessio
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(saveMode = SaveMode.ALWAYS)
 	static class CustomSaveModeExpressionAnnotationConfiguration {
 
@@ -412,6 +419,7 @@ static class CustomSaveModeExpressionSetterConfiguration extends JdbcHttpSession
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class QualifiedDataSourceConfiguration {
 
@@ -423,6 +431,7 @@ DataSource qualifiedDataSource() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class PrimaryDataSourceConfiguration {
 
@@ -434,6 +443,7 @@ DataSource primaryDataSource() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class QualifiedAndPrimaryDataSourceConfiguration {
 
@@ -451,6 +461,7 @@ DataSource primaryDataSource() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class NamedDataSourceConfiguration {
 
@@ -461,6 +472,7 @@ DataSource dataSource() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class MultipleDataSourceConfiguration {
 
@@ -471,6 +483,7 @@ DataSource secondaryDataSource() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class CustomTransactionOperationsConfiguration {
 
@@ -481,6 +494,7 @@ TransactionOperations springSessionTransactionOperations() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class CustomIndexResolverConfiguration {
 
@@ -492,6 +506,7 @@ IndexResolver indexResolver() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class CustomLobHandlerConfiguration {
 
@@ -502,6 +517,7 @@ LobHandler springSessionLobHandler() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class CustomConversionServiceConfiguration {
 
@@ -512,6 +528,7 @@ ConversionService springSessionConversionService() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession(tableName = "${session.jdbc.tableName}")
 	static class CustomJdbcHttpSessionConfiguration {
 
@@ -522,6 +539,7 @@ PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
 
 	}
 
+	@Configuration(proxyBeanMethods = false)
 	@EnableJdbcHttpSession
 	static class SessionRepositoryCustomizerConfiguration {
 
diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/HttpSessionConfig.java b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/HttpSessionConfig.java
index eda297b3f..dcad5f0bc 100644
--- a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/HttpSessionConfig.java
+++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/HttpSessionConfig.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2016 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,10 +19,12 @@
 import java.time.Duration;
 
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.session.data.mongo.JdkMongoSessionConverter;
 import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession;
 
 // tag::class[]
+@Configuration(proxyBeanMethods = false)
 @EnableMongoHttpSession // <1>
 public class HttpSessionConfig {
 
diff --git a/spring-session-samples/spring-session-sample-javaconfig-custom-cookie/src/main/java/sample/Config.java b/spring-session-samples/spring-session-sample-javaconfig-custom-cookie/src/main/java/sample/Config.java
index 28acd806c..b6ad74e7f 100644
--- a/spring-session-samples/spring-session-sample-javaconfig-custom-cookie/src/main/java/sample/Config.java
+++ b/spring-session-samples/spring-session-sample-javaconfig-custom-cookie/src/main/java/sample/Config.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,12 +17,14 @@
 package sample;
 
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
 import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
 import org.springframework.session.web.http.CookieSerializer;
 import org.springframework.session.web.http.DefaultCookieSerializer;
 
+@Configuration(proxyBeanMethods = false)
 @Import(EmbeddedRedisConfig.class)
 @EnableRedisHttpSession
 public class Config {
diff --git a/spring-session-samples/spring-session-sample-javaconfig-jdbc/src/main/java/sample/Config.java b/spring-session-samples/spring-session-sample-javaconfig-jdbc/src/main/java/sample/Config.java
index 7eadf2617..a2ede0de3 100644
--- a/spring-session-samples/spring-session-sample-javaconfig-jdbc/src/main/java/sample/Config.java
+++ b/spring-session-samples/spring-session-sample-javaconfig-jdbc/src/main/java/sample/Config.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 import javax.sql.DataSource;
 
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
@@ -27,6 +28,7 @@
 import org.springframework.transaction.PlatformTransactionManager;
 
 // tag::class[]
+@Configuration(proxyBeanMethods = false)
 @EnableJdbcHttpSession // <1>
 public class Config {
 
diff --git a/spring-session-samples/spring-session-sample-javaconfig-redis/src/main/java/sample/Config.java b/spring-session-samples/spring-session-sample-javaconfig-redis/src/main/java/sample/Config.java
index 366eb84bf..3420a1853 100644
--- a/spring-session-samples/spring-session-sample-javaconfig-redis/src/main/java/sample/Config.java
+++ b/spring-session-samples/spring-session-sample-javaconfig-redis/src/main/java/sample/Config.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,12 +17,14 @@
 package sample;
 
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
 import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
 
 @Import(EmbeddedRedisConfig.class)
 // tag::class[]
+@Configuration(proxyBeanMethods = false)
 @EnableRedisHttpSession // <1>
 public class Config {