Skip to content

10. Interim Conclusion

Examples 01 through 28 have presented, one by one, all the concepts required by the case study:

Concept
Examples
In the case study
controllers, actions, routing, redirects
01 through 05
folder [controllers]
beans, services, dependency injection
06
[RdvMedecinsApplication.java], [config] folder, [@Service] services
action model, binding, validation via annotations
07 through 12
[models/Forms.java], [web/Validation.java]
Thymeleaf views, template, fragments, common view attributes
13 to 16
folder [templates], [web/CommonModel.java]
Forms, validation, redrawing
17–19
[templates/persons/form.html], [templates/fragments/person-fields.html]
Post / Redirect / Get, flash message (flash attributes)
20
[web/FlashMessage.java], [web/CookieFlashMapManager.java], [templates/fragments/flash.html]
Links and buttons, confirmation window
21
[templates/fragments/confirmation.html], [static/js/app.js]
Internationalization
22
[i18n/*.json], [web/Translator.java], [controllers/LanguageController.java], [config/WebConfig.java]
Data Scopes
23
[web/ApplicationModel.java] (singleton), cookies
filters, [@ControllerAdvice], error pages
24
[web/HtmlExceptionHandler.java], [web/CommonModel.java], [controllers/ErrorController.java]
Spring Security, JWT, roles, CAPTCHA, rate limiting
25–27
folder [auth], [config/SecurityConfig.java], [controllers/AuthController.java]
Web / Business / DAO, Spring Data JPA, Transactions
28
folders [entities], [repositories], [business]

The case study brings them all together into a complete, realistic-sized application (approximately 80 files and 6,400 lines, including comments). It was written with the same care as the examples: each file begins with a comment explaining its role, and tricky sections are annotated in the code. Each main folder also contains a file named [README.md] that lists its files. The document’s commentary highlights what the examples did not show and refers to them for the rest.