Last active
June 16, 2022 13:39
-
-
Save hakaneroztekin/9d58a4c56df02c93ed78db91b9493559 to your computer and use it in GitHub Desktop.
docker-spring-main-method [spring in a nutshell]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RestController | |
@RequestMapping("/") | |
@RequiredArgsConstructor | |
public class GreetingsController { | |
private static final String DOCUMENT_KEY = "clickCount"; | |
private final ClickCountRepository clickCountRepository; | |
@GetMapping | |
public String printClickCount() { | |
long clickCountInDatabase = getClickCountInDatabase(); | |
long incrementedClickCount = incrementClickCountInDatabase(clickCountInDatabase); | |
return "Hello, this page is visited " + incrementedClickCount + " times."; | |
} | |
private long getClickCountInDatabase() { | |
boolean documentExists = clickCountRepository.existsById(DOCUMENT_KEY); | |
System.out.println("document exists? " + documentExists); | |
if (documentExists) { | |
ClickCount clickCount = clickCountRepository.findById(DOCUMENT_KEY).get(); | |
System.out.println("returning existing document with count " + clickCount.getCount()); | |
return clickCount.getCount(); | |
} | |
long clickCountInDatabase = 0; | |
System.out.println("document doesn't exist, creating a new document with count " + clickCountInDatabase); | |
saveClickCount(clickCountInDatabase); | |
return clickCountInDatabase; | |
} | |
private long incrementClickCountInDatabase(long clickCountInDatabase) { | |
long incrementedClickCount = clickCountInDatabase + 1; | |
System.out.println("incremented click count to " + incrementedClickCount); | |
ClickCount savedClickCount = saveClickCount(incrementedClickCount); | |
return savedClickCount.getCount(); | |
} | |
private ClickCount saveClickCount(long clickCount) { | |
return clickCountRepository.save(ClickCount.builder().id(DOCUMENT_KEY).count(clickCount).build()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment