Je prima, že můžeme oznámit všeobecnou dostupnost Graal Cloud Native 4 na základě nedávno spuštěného Micronaut® frameworku 4!
Graal Cloud Native (GCN) je sestavení Oracle open source frameworku Micronaut. GCN poskytuje kurátorskou sadu modulů frameworku Micronaut, které zjednodušují vývoj cloudových aplikací, jsou navrženy tak, aby je bylo možné předem zkompilovat pomocí GraalVM Native Image a jsou plně podporovány společností Oracle. GCN vám umožňuje snadno vytvářet přenosné cloudové nativní mikroslužby Java, které se spustí okamžitě a využívají méně zdrojů ke snížení nákladů na výpočetní techniku.
Co je nového v GCN 4?
Podívejme se na některé z významných změn v tomto vydání.
GCN BOM 2.0
Máme nový kusovník (BOM) 2.0 sestávající ze specifických verzí modulů Micronaut framework 4 a jejich závislostí, které jsou kompatibilní a společně testované. To snižuje riziko nekompatibility knihoven a nesouladu verzí a ušetří vám to testování a zjišťování sami.
Zahrňte kusovník do souborů sestavení pomocí:
Gradle:
dependency { micronautBoms(platform("cloud.graal.gcn:gcn-bom:2.0")) ... }
Maven:
<dependency>
<groupId>cloud.graal.gcn</groupId>
<artifactId>gcn-bom</artifactId>
<version>2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Java 17
GCN 4 je navržen a testován pro práci s Java 17 a novějšími verzemi.
Grade 8
Pokud k vytváření aplikací GCN používáte Gradle, Gradle 8 je minimální verze potřebná pro práci s GCN 4.
Serializace Micronaut
Micronaut Serialization je plně funkční náhrada Jacksona v době kompilace a je nyní výchozí v GCN a Micronaut frameworku 4. Micronaut Serialization poskytuje bez odrazů, rychlá a bezpečná JSON serializační/deserializační API při zachování kompatibility API s Jacksonovými anotacemi. Další informace naleznete v příručce serializace společnosti Micronaut.
Níže je uveden příklad zahrnutí serializace Micronaut do souborů sestavení pro GCN 4 vs GCN 3.8.5:
GCN 4 – Gradle:
dependency { ... implementace("io.micronaut.serde:micronaut-serde-jackson") ... }
GCN 3.8.5 – Gradle:
dependency { ... implementace("io.micronaut:micronaut-jackson-databind") ... }
GCN 4 – Maven:
<dependency> <groupId>io.micronaut.serde</groupId> <artifactId>micronaut-serde-jackson</artifactId> <scope>kompilovat</scope> </dependency>
GCN 3.8.5 – Maven:
<dependency> <groupId>io.micronaut</groupId> <artifactId>micronaut-jackson-databind</artifactId> <scope>kompilovat</scope> </dependency>
Integrace GraalVM
Moduly GCN 4 byly navrženy a testovány tak, aby fungovaly s nejnovější verzí Oracle GraalVM pro JDK 17 Native Image, která je k dispozici pod licencí GraalVM Free Terms and Conditions (GFTC).
Metadata dosažitelnosti modulů GCN a Micronaut framework 4 a jejich závislostí jsou uložena ve sdíleném úložišti GraalVM Reachability Metadata a tyto moduly jsou uvedeny na stránce Libraries and Frameworks Tested with Native Image. Integrace GraalVM GCN a Micronaut framework 4 byla přepracována tak, aby používala toto sdílené úložiště metadat pomocí pluginů Micronaut Maven a Gradle a GraalVM Native Build Tools. Díky tomu je pro vás extrémně jednoduché zkompilovat vaši aplikaci GCN do nativního spustitelného souboru s GraalVM Native Image.
Konfigurační soubory aplikace
Micronaut framework 4 již nevystavuje SnakeYAML jako tranzitivní závislost. Ve výchozím nastavení tedy GCN 4 používá pro konfiguraci aplikace soubory vlastností namísto souborů YAML. Tím se snižuje plocha útoku vašich aplikací odstraněním externí knihovny (SnakeYAML).
Níže je uveden příklad konfiguračního souboru aplikace pro GCN 4 vs GCN 3.8.5:
GCN 4 – Soubor vlastností:
micronaut.application.name=dbDemo flyway.datasources.default.enabled=true datasources.default.db-type=mysql datasources.default.dialect=MYSQL datasources.default.driver-class-name=com.mysql.cj.jdbc.Driver
GCN 3.8.5 – soubor YAML:
mikronaut: aplikace: název: dbDemo průlet: zdroje dat: výchozí: povoleno: true zdroje dat: výchozí: db-type: mysql dialekt: MYSQL název-třídy ovladače: com.mysql.cj.jdbc.Driver
Přechod Javax do Jakarty
Micronaut framework 4 dokončil přechod Javax do Jakarty. GCN tedy používá jakarta.validation
místo namísto javax.validation,
jakarta.mail
, javax.mail
místo jakarta.transaction
a javax.transaction,
tak dále.
Níže jsou uvedeny některé příklady GCN 4 vs. GCN 3.8.5:
GCN 4:
import jakarta.validation.Valid; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.transaction.Transakční;
GCN 3.8.5:
import javax.validation.Valid; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.transaction.Transakční;
Vylepšená modularita
Micronaut Framework 4 je modulárnější a umožňuje vám nasadit ještě menší mikroslužby s menší velikostí nativních spustitelných souborů a bitových kopií kontejnerů a rychlejším spouštěním. Vestavěné funkce Validation , Retry , Service Discovery , HTTP Session a WebSocket byly rozděleny do samostatných modulů, které vám umožňují odstranit tuto funkci, pokud ji nepotřebujete.
Níže je uveden příklad použití ověření Micronaut ve vašich souborech sestavení pro GCN 4:
GCN 4 – Gradle:
annotationProcessor("io.micronaut.validation:micronaut-validation-processor") implementace("io.micronaut.validation:micronaut-validation")
GCN 4 – Maven:
<annotationProcessorPaths> <path> <groupId>io.micronaut.validation</groupId> <artifactId>mikronautický-validační-procesor</artifactId> </path> </annotationProcessorPaths> ... ... <dependency> <groupId>io.micronaut.validation</groupId> <artifactId>ověření mikroauta</artifactId> </dependency>
Cloudové moduly
GCN a Micronaut framework 4 obsahují cloudové moduly s vylepšenou podporou pro Oracle Cloud. Sada Oracle Cloud SDK byla vylepšena tak, aby byla kompatibilní s Micronaut Serialization, což zlepšuje rychlost a bezpečnost požadavků a odpovědí tím, že eliminuje potřebu Jacksona. Transportní vrstva pro Oracle Cloud SDK byla také nahrazena Netty, takže při psaní aplikací není potřeba druhého HTTP klienta (Jersey), což má za následek menší obrázky kontejnerů a lepší výkon při spouštění. Můžete také použít nový servisní modul Oracle Cloud Infrastructure Certificates ke konfiguraci a správě certifikátů HTTPS s automatickým obnovením certifikátů s prošlou platností.
Object Storage přidává Local Storage pro usnadnění místního vývoje a testování.
Spouštěč a průvodci GCN
Spouštěč a průvodci GCN byly aktualizovány, aby zahrnovaly výše uvedené změny.
GCN VS Code Tooling
S touto verzí jsme provedli několik změn v nástroji Visual Studio Code pro Graal Cloud Native.
GCN VS Code Tools mají vlastní domovskou stránku https://www.graal.cloud/gcn/vscode-tools/. Zde můžete přistupovat k dokumentaci, průvodcům a sledovat video nástroje v akci.
Nyní podporujeme vytváření a práci s projekty Graal Cloud Native 4.0 a Micronaut 4.0.
Přidali jsme pohled průzkumníka Bean a Endpoints pro Micronaut, který také umožňuje spouštět požadavky REST proti koncovým bodům z IDE.
Přidali CodeLens pro režim „Run in Continuous“. Když aktualizujete spuštěnou aplikaci Micronaut spuštěnou z CodeLens, aplikace se přebuduje a spustí se automaticky, čímž se zlepší celkový vývojářský zážitek.
Konečně vydali naše databázové nástroje, které vám umožňují vytvářet třídy Micronaut Data přímo z existujícího databázového schématu (Oracle Autonomous Database). Tato funkce umožňuje velmi snadno vystavit existující databáze programově prostřednictvím aplikací GCN a Micronaut!
JSON Relační dualitní pohledy
Nejnovější verze Micronaut Data JDBC přichází s podporou pro Oracle Database 23c a JSON Relational Duality Views. JSON Relational Duality Views poskytuje výhody jak relačních tabulek, tak dokumentů JSON, bez kompromisů mezi oběma přístupy. Další informace najdete na blogu: Použití JSON Relational Duality Views s Micronaut® Framework a ukázka: Micronaut JSON View Demo.
Další změny
GCN 4 obsahuje několik dalších pozoruhodných funkcí Micronaut framework 4, včetně rané podpory pro virtuální vlákna (Project Loom) s JDK 19 a novější, optimalizovaná vrstva HTTP založená na Netty pro virtuální vlákna, vylepšený výkon HTTP (až o 50 % lepší propustnost), experimentální podpora HTTP/3 a IO_Uring a nový jazyk výrazů v době kompilace (EL)
Zdroj: Oracle