spring_boot_starter_cache 0.3.0
spring_boot_starter_cache: ^0.3.0 copied to clipboard
Cache starter for spring_boot_dart: @Cacheable, @CachePut, @CacheEvict and @Caching on bean methods, SpEL keys, a CacheManager with TTL and size limits.
0.3.0 #
- feat(spring_boot_starter_flutter): themes from properties, free reads in Spring widgets
0.2.3 #
- add spring application handling
- docs(spring_boot_starter_flutter): add an example for pub.dev
0.2.2 #
- ci: run only the tests of the packages a change affects
0.2.1 #
- feat: spring_boot_starter_flutter, @Log, --dart-define properties, Flutter counter example
0.2.0 #
- the auto-configured
cacheManagerbacks off for aCacheManagerregistered by an@ImportedBeanRegistrar/ImportBeanDefinitionRegistrarof the application (there were two); its condition is decided when the auto-configuration is read, like Boot'sOnBeanCondition @CacheConfigand class-level cache annotations are read from the class that declares the method's body, then its superclasses (the nearest wins, per annotation type for class-level ones), like Spring'sDefaultCacheConfig(method.getDeclaringClass())andfindAnnotation: a base class with@CacheConfig(cacheNames:)no longer fails the start, a base class with@Cacheablecaches its methods in subclass beans, and a subclass's class-level annotations no longer apply to methods it inherits; needs the matchingspring_core_dartand generator- Cache annotations on a superclass or mixin method apply to an override without its own (
MethodSignature.mergedAnnotations, nearest first; its own and its interface declarations' win), like Spring'sAnnotationCacheOperationSource; needs the matchingspring_core_dartand generator - An empty
spring.cache.cache-names=keeps the caches dynamic, like Boot (it fixed an empty set, so every cache was unknown). - On a method returning a
Future, an error before the call (an invalid SpELkeyorcondition, a failing cache) is a failedFutureinstead of a synchronous throw. - Class-level
@Cacheable/@CachePut/@CacheEvict/@Cachingapply to every public method without cache annotations of its own, like Spring (they were ignored). #root.method.name(andreturnType,parameterTypes,parameterNames,parameterCount) in cache SpEL.- A
nullcache key fails the call with anArgumentError, like Spring (it was used as a key). spring.cache.type=generic, the default when there areCachebeans: aSimpleCacheManagerof them, like Boot'sGenericCacheConfiguration.CacheManagerCustomizerbeans customize the auto-configured manager;cacheManagerFromProperties(caches:, customizers:).CacheAnnotationPointcutis anAnnotationPointcut, so the cache advisor keeps proxy pruning on- a
@CachePutwhoseconditionfails before the call no longer forces a@Cacheablehit to run the method (Spring'shasCachePut; a condition reading#resultstill counts as passing) spring.cache.cache-namesaccepts a YAML list (spring.cache.cache-names[0])
0.1.7 #
@CacheConfigdefaults apply like Spring's:keyGeneratoronly to operations withoutkeyandkeyGenerator(akeynext to@CacheConfig(keyGenerator:)no longer throws),cacheManager/cacheResolveronly to operations without either.- Breaking: cache annotations are validated when a proxied bean is created (every member, at startup) instead of at the first call: invalid combinations now fail the start.
- Breaking:
@Cacheable/@CachePuton a method returning aStreamfail the build (generator) and the startup; return aFuture<List<T>>. cacheResolver:on@Cacheable,@CachePut,@CacheEvictand@CacheConfig;CacheResolver,SimpleCacheResolver,NamedCacheResolver,CacheOperationInvocationContext; publicCacheOperationtypes (CacheableOperation,CachePutOperation,CacheEvictOperation) andAnnotationCacheOperationSource.CachingConfigurer(default cache manager, cache resolver, key generator, error handler) andCacheErrorHandler(SimpleCacheErrorHandler,LoggingCacheErrorHandler).- The starter's
cacheManageralso backs off when a bean namedcacheResolverexists, like Spring Boot. CacheInterceptortakescacheResolver:anderrorHandler:; itskeyGenerator/cacheManagerdefaults are resolved lazily (argument, elseCachingConfigurer, elseSimpleKeyGenerator/ theCacheManagerbean).
0.1.6 #
- update road map
- ci: release with a button on main, skip new packages when publishing; shorter pubspec descriptions
0.1.5 #
- add feign runner + web socket runner
- add web core + faign starter for http calling
0.1.4 #
- feat: ObjectMapper in core — JSON on generated metadata (@Introspected, @JsonProperty/@JsonIgnore/@JsonInclude/@JsonCreator/@JsonValue), spring.jackson.* in Boot
0.1.3 #
- Initial version: @Cacheable, @CachePut, @CacheEvict, @Caching; CacheManager.