Adres aplikacji: https://skrotowiec.elk.pl/
Kod aplikacji: https://gitlab.com/jaktworzycaplikacje.pl/skrotowiec/-/tree/master
Ten wpis zawiera informacje w jaki sposób:
* Tworzyć schemat bazy danych z wykorzystaniem JDL Studio, * Utworzyć encje JPA, * Szybko stworzyć operację CRUD dla encji, * Importować dane z pliku excel do bazy danych, * Skonfigurować logowanie dla logback.
Przed przystąpieniem do tego kroku powinieneś posiadać wstępnie skonfigurowaną aplikację z wykorzystaniem jhipster:
S2E2 Programowanie szkieletu aplikacji skrótowiec
Posiadasz wstępnie zaprogramowaną aplikację, ładnie ostylowaną z panelem admina, logami oraz statystykami. W tym momencie jest ona kompletnie bezużyteczna. Nie możesz wyszukiwać skrótów, ponieważ nie masz bazy danych w której można szukać. Przed Tobą jeszcze tona roboty, musisz stworzyć:
- Bazę danych wraz z tabelami, - Liquibas’owe chainsety, - operacje JPA, - Kontrolery Rest’owe które będą posiadały podstawowe funkcje Create, Read, Update, Delete, - Angularow’owe routery, componenty i serwisy, - Podstawowe widoki w HTML, - Testy integracyjne, - Testy wydajnościowe.
To wszystko musisz stworzyć dla prostej wyszukiwarki skrótów, programowanie nie jest proste i szybkie. Ja wysiadam. A teraz czy nie byłoby super gdyby te wszystkie operacje, które wypisałem powyżej nie zajmowały tygodni, tylko minuty?
W swoich pierwszych aplikacjach musiałem programować te wszystkie operacje ręcznie, bez implementacji logiki biznesowej zajmowało to sporo czasu, lekką ręką licząc ponad tydzień. Przedstawiam Ci rozwiązanie, które pozwoli zaoszczędzić tygodnie:
https://start.jhipster.tech/jdl-studio/
1. Tworzenie Encji
Jdl studio jest narzędziem, które jest przeznaczone do pracy z jhipsterem w którym modelujesz encje w przyjazny sposób https://www.jhipster.tech/jdl/intro :

Po stworzeniu encji w JDL studio, wystarczy użyć generatora jhipstera komedną:
jhipster jdl plik-z-enjcami.jh
Który wykona za Ciebie całą masę kodu o którym pisałem na wstępie. Po prostu Magia!
Będziesz posiadał widoki, endpointy, walidacje oraz testy do wszystkich operacji CRUD dla encji które zamodelujesz w JDL.
Pełną listę pól oraz relacji znajdziesz w linku: https://www.jhipster.tech/creating-an-entity/
Dla skrótowca, będziesz używał maksymalnie uproszczonego przykładu, bez relacji z prostymi walidacjami:
entity Acronym {
abbreviation String required minlength(2) maxlength(50)
meaning String required maxlength(1500)
addedBy String required minlength(3) maxlength(150)
searchCount Long required
}
Powyższego kodu raczej nie trzeba specjalnie tłumaczyć.
Cały kod który odpowiada za dodanie encji znajduje się w komicie:
https://gitlab.com/jaktworzycaplikacje.pl/skrotowiec/-/commit/f714b0a5ef8c91f7ca7cfe38f171e54e4fae3b2d
w branchu https://gitlab.com/jaktworzycaplikacje.pl/skrotowiec/-/commits/feature/entity-acronym
2. Dodanie encji z pliku excel
Po zalogowaniu się do panelu admina w sekcji Encje pojawi się pozycja Acronym:

W sekcji Acronym dodasz przycisk z logiką dodania skrótowców z pliku excel:

Oraz stworzysz formularz dodawania pliku i logikę zapisu do bazy danych z pliku excel:

Cały kod dodania z pliku Excel znajduje się w komicie:
https://gitlab.com/jaktworzycaplikacje.pl/skrotowiec/-/commit/7a3820f68e13e803f37362324e96938b0c71315d
3. Skonfigurowanie logowania logback
Jhipster, jeśli nie podejmiesz żadnej akcji nie tworzy plików logowania na produkcji. Konfiguracja jest już gotowa, znajduje się zakomentowana w pliku:
src/main/resources/logback-spring.xml
odkomentuj kod który jest poniżej z pliku logback-spring.xml:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>skrLogFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>512</queueSize>
<appender-ref ref="FILE"/>
</appender>
<root level="${logging.level.root}">
<appender-ref ref="ASYNC"/>
</root>
W fileNamePattern podaj nazwę pliku do jakiego będą zapisywać się logi. W tym przypadku użyłem nazwy skrLogFile.
Teraz, jeśli tworzysz aplikację zgodnie z serią wpisów, wystarczy, że pushniesz swój kod do repozytorium i zmergujesz z branchem master. Po minucie jenkins automatycznie odpali builda, zmieni wersję aplikacji na najnowszą bez twojej ingerencji.
Plik z logami znajduje się w folderze: /var/lib/jenkins/workspace/skr/target
One Comment
Pingback:
24 października 2022 at 08:30