47 lines
		
	
	
		
			812 B
		
	
	
	
		
			Groovy
		
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			812 B
		
	
	
	
		
			Groovy
		
	
	
	
| 
								 | 
							
								package org.test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import java.util.concurrent.atomic.AtomicLong
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Configuration
							 | 
						||
| 
								 | 
							
								@EnableCaching
							 | 
						||
| 
								 | 
							
								class Sample {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@Bean CacheManager cacheManager() {
							 | 
						||
| 
								 | 
							
										new ConcurrentMapCacheManager()
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@Component
							 | 
						||
| 
								 | 
							
									static class MyClient implements CommandLineRunner {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										private final MyService myService
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@Autowired
							 | 
						||
| 
								 | 
							
										MyClient(MyService myService) {
							 | 
						||
| 
								 | 
							
											this.myService = myService
							 | 
						||
| 
								 | 
							
										} 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										void run(String... args) { 
							 | 
						||
| 
								 | 
							
											long counter = myService.get('someKey')
							 | 
						||
| 
								 | 
							
											long counter2 = myService.get('someKey')
							 | 
						||
| 
								 | 
							
											if (counter == counter2) {
							 | 
						||
| 
								 | 
							
												println 'Hello World'
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												println 'Something went wrong with the cache setup'
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@Component
							 | 
						||
| 
								 | 
							
									static class MyService {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										private final AtomicLong counter = new AtomicLong()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@Cacheable('foo')
							 | 
						||
| 
								 | 
							
										Long get(String id) {
							 | 
						||
| 
								 | 
							
											return counter.getAndIncrement()
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |