!!! Od 1.6.2022 nastupuji do Komerční banky tvořit novou digitální banku. Školení se nechci úplně vzdávat, v současnosti přemýšlím nad tím, jak alespoň pár školení za rok uskutečnit. Pokud by mi někdo se školeními chtěl pomoci, tak se mi ozvěte. Na JavaDays opět budu, to si nenechám ujít :-) Teď budu mít v KB hodně práce než si všechno sedne, ale jakmile to nastane, tak hned budu přemýšlet nad tím, jak alespoň pár školení za rok uskutečnit, protože je hromada lidí, které bych opět strašně moc rád viděl a považuji je za přátele. Časem (nejspíš v příštích pár měsících) vytvořím nový blog na separátní doméně a novinky Java a SQL školení dále rozšiřovat nebudu. Pokud se něco změní, tak to dám včas vědět zde na webu a na blogu. !!!

Strasti se Spring Native

publikováno: 28.12.2021

Pár postřehů:

  • Je dobrý nápad mít Spring Native konfiguraci v samostatné @Configuration třídě, dostal jsem se do divné situace když jsem kombinoval @TypeHint a @EnableCaching v jedné třídě
  • Když nevidíte při startu stacktrace, ale nic-neříkající info že máte něco špatně, pak spusťte aplikaci s --debug=true, pak ten stacktrace uvidíte
  • U veřejných webů používám SSR (Server-Side Rendering) přes Thymeleaf a to je v současnosti se Spring Native vcelku peklo. Základní věci fungují, ale cokoli pokročilejšího co většinou používá reflexi je problém ... takže se musí vyzkoušet jestli se všechny stránky vyrenderují správně :-/
  • Spring Retry v současnosti nefunguje, nahradil jsem ho za Resilience4J, což jsem stejně chtěl již delší dobu udělat
  • Spring AOT generuje reflect-config.json a další .json soubory, které používá GraalVM do adresáře target/generated-sources/spring-aot/src/main/resources/META-INF/native-image/org/springframework/aot/spring-aot
  • spring-boot-maven-plugin dokáže nejenom vygenerovat výsledný Docker image, ale také ho vypublikovat do Docker registry
  • Spring Native aplikace co dřív běžela na GraalVM CE žrala víc CPU než novější verze, která běží na NIK (výchozí runtime od Spring Native 0.11.0), ale k tomu nemám dostatek dat, jenom pozorování ze dvou serverů, které může být mylné, na to se musím ještě víc zaměřit.
  • Asi nejlepší způsob jak nastavit timezone v Docker image je: docker run --env "TZ=Europe/Prague" IMAGE_NAME

Další postřehy budu průběžně přidávat.

Reference

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

6.6.2022: JFR (Java Flight Recorder) & Java 17

16.4.2022: Docker Desktop & High CPU usage

5.4.2022: Spring4Shell 0-day vulnerability