W ramach nauki Springa przygotowałem prostą aplikację webową.
Aplikację służy do oznaczania miejsc na mapie za pomocą markerów. Nazwałem ją punktator i jest to moja pierwsza aplikacja napisania z użyciem SpringBoota.
Rozwiązania, które zdecydowałem się użyć to:
- Spring Boot
- Spring MVC
- Spring Security
- MySQL
- JDBC Template
- Thymeleaf
- Leaflet
- Docker
Podstawą działania aplikacji jest biblioteka Leaflet bazująca na OpenStreetMap. Stworzyłem do niej panel administracyjny (zabezpieczony za pomocą Springa Security), w którym można konfigurować mapę i zarządzać punktami, które przechowywane są w bazie MySQL, a którą w przyszłości będę chciał zastąpić bazą MongoDB. Na podstawie danych z bazy generowany jest widok mapy przygotowany w Thymeleaf wraz z dodanymi markerami. Utworzyłem także prostego RESTa zwracającego listę wszystkich punktów przechowywanych w bazie.
Mimo tego, że całość jest dość prosta, nie obeszło się bez problemów. Największym z nich, nad którym spędziłem sporo czasu to poszukiwanie rozwiązania problemu z dodawaniem statycznej zawartości, w tym przypadku loga i faviconki. Rozwiązanie, które zadziałało w moim przypadku polegało na nadpisaniu metody addResourceHandlers i podaniu w niej konkretnych ścieżek. Znalazłem je na blogu spring.io.
Aplikacja działa jak powinna, ale ma kilka niedociągnięć, które będę starał się w wolnym czasie dopracowywać. Kod umieściłem na moim GitHubie, a kontener z aplikacją na DockerHubie. W tym pierwszym miejscu znajduje się także plik docker-compose.yml, za pomocą którego można uruchomić aplikację wraz z bazą danych.







