From 37bebeaaaf294ef350ec646604124b5b78c6e690 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 14 Dec 2021 09:41:23 +0100 Subject: [PATCH] Accept protected @Transactional/Cacheable methods on CGLIB proxies Closes gh-25582 --- .../cache/annotation/ProxyCachingConfiguration.java | 5 +++-- .../annotation/ProxyTransactionManagementConfiguration.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/cache/annotation/ProxyCachingConfiguration.java b/spring-context/src/main/java/org/springframework/cache/annotation/ProxyCachingConfiguration.java index b7d35684b32..e5b628950b3 100644 --- a/spring-context/src/main/java/org/springframework/cache/annotation/ProxyCachingConfiguration.java +++ b/spring-context/src/main/java/org/springframework/cache/annotation/ProxyCachingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2021 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. @@ -56,7 +56,8 @@ public class ProxyCachingConfiguration extends AbstractCachingConfiguration { @Bean @Role(BeanDefinition.ROLE_INFRASTRUCTURE) public CacheOperationSource cacheOperationSource() { - return new AnnotationCacheOperationSource(); + // Accept protected @Cacheable etc methods on CGLIB proxies, as of 6.0. + return new AnnotationCacheOperationSource(false); } @Bean diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java index 206cd512abc..4469f5a0b7b 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2021 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. @@ -56,7 +56,8 @@ public class ProxyTransactionManagementConfiguration extends AbstractTransaction @Bean @Role(BeanDefinition.ROLE_INFRASTRUCTURE) public TransactionAttributeSource transactionAttributeSource() { - return new AnnotationTransactionAttributeSource(); + // Accept protected @Transactional methods on CGLIB proxies, as of 6.0. + return new AnnotationTransactionAttributeSource(false); } @Bean