Quarkus est Java subatomica supersonica. Brevis contemplationis compage

Quarkus est Java subatomica supersonica. Brevis contemplationis compage

introduction

Die XNUMX Martii, RedHat (mox IBM) presented nova compage - quarkus. Secundum tincidunt, haec compages in GraalVM et OpenJDK HotSpot fundatur et ad Kubernetes destinatur. BIBLIOTHECA Quarkus includit: JPA/Hibernata, JAX-RS/RESTEasy, Eclipsis Vert.x, Netty, Apache Camelus, Kafka, Prometheus et alii.

Propositum est ut Java principale suggestum Kubernetes instruere et applicationem evolutionis inservire possit, ut tincidunt una cum accessu ad evolutionem tam reactiva quam imperativi styli praebeat.

Si intueri haec partitio compagum, deinde Quarkus alicubi est inter "aggregatores/Code Generatores" et "summus gradus solidorum compagum". Hoc iam plus est quam aggregator, sed ne in acervum quidem pervenit, quia... ad formandam progressionem backend.

Lorem Ipsum Lorem applicationis celeritatem memoriae humilis consummatio promittitur. Hic est notitia ex scriptor website elit:

Tempus ab initio ad primam responsionem (s):

configuratione
OTIUM
REQUIES+JPA

Quarkus+GraalVM
0.014
0.055

Quarkus+OpenJDK
0.75
2.5

Traditional Cloud Accuratissima Totius Stack *
4.3
9.5

Memoria consummationis (Mb);

configuratione
OTIUM
REQUIES+JPA

Quarkus+GraalVM
13
35

Quarkus+OpenJDK
74
130

Traditional Cloud Accuratissima Totius Stack *
140
218

Gravis, annon?

*Aliquas informationes de hoc acervo technologiarum non inveni, assumere possumus hoc genus aliquod veris Booz cum ornamento corporis addito..

Orbis Terrarum salve!

Simplicissimum applicatione scriptum in Quarkus hoc spectare videtur:

@Path("/hello")
public class GreetingResource {

   @GET
   @Produces(MediaType.TEXT_PLAIN)
   public String hello() {
       return "hello";
   }
}

Proprie unum genus est et hoc satis est! Potes currere applicationem Maven in evolutionis modo utendi:

mvn compile quarkus:dev
…
$ curl http://localhost:8080/hello
hello

Distinctio a iusto application est quod class applicationem nulla! Quarkus reload calidam sustinet, ut applicationem tuam sine restarting illum mutare potes, progressionem etiam citius faciens.

Quid suus 'postero? Addere potes officium moderatoris utens annotatione inject. Servitium codicem:

@ApplicationScoped
public class GreetingService {

   public String greeting(String name) {
       return "Hello " + name + "!";
   }
}

Controller:

@Path("/hello")
public class GreetingResource {

   @Inject
   GreetingService service;

   @GET
   @Produces(MediaType.TEXT_PLAIN)
   @Path("/{name}")
   public String greeting(@PathParam("name") String name) {
       return service.greeting(name);
   }
}

$ curl http://localhost:8080/hello/developer
Hello developer!

Nota quod Quarkus ex notis compagibus - CDI et JAX-RS annotationibus utitur. Nihil opus est ut aliquid novi discas, si prius cum CDI et JAX-RS functus es, utique.

Operantes cum database

Hibernate et vexillum JPA annotationes pro entia adhibentur. Ut cum reliquis moderatoris, minimum codicis scribere debes. Satis est indicare clientelas in fasciculo conventus, annotationes addere @Entity et configurare datasource in application.properties.

Omnis. Nulla sessionFactory, persistence.xml vel alia documenta muneris. Non opus est solum codicem scribere. Tamen, si opus est, perseverantiam creare potes.xml fasciculum et tabulatum ORM subtilius configurare.

Quarkus subsidia cautionum entium, collectiones pro una ad multas relationes et interrogationes. Primo aspectu multum spectat, sed est locorum caching, uius Kubernetes node. Illae. Cellae diversorum nodi inter se non conformantur. Spero hoc tempus est.

Asynchronous code supplicium

Ut supra dictum est, Quarkus etiam stilum programmandi reactivum sustinet. Codex praecedentis schedula alia forma scriptus est.

@Path("/hello")
public class GreetingResource {

   @GET
   @Produces(MediaType.TEXT_PLAIN)
   @Path("/{name}")
   public CompletionStage<String> greeting(@PathParam("name") String name) {
       return CompletableFuture.supplyAsync(() -> {
           return "Hello " + name + "!";
       });
   }
}

Codex Asynchronous transferri potest ad usuni, idem erit.

temptationis

Probat ad applicationes Quarkus scribi possunt in JUnit4 vel JUnit5. Infra est exemplum testi pro fine, utens Restassured scriptum est, sed alia compages adhiberi potest:

@QuarkusTest
public class GreetingResourceTest {

   @Test
   public void testGreetingEndpoint() {
       String uuid = UUID.randomUUID().toString();
       given()
         .pathParam("name", uuid)
         .when().get("/hello/{name}")
         .then()
           .statusCode(200)
           .body(is("Hello " + uuid + "!"));
   }
}

The @QuarkusTest annotationem docet te currere applicatione ante currit probat. Reliquum est codicem tincidunt omnibus nota.

Suggestum specialium applicationis

Cum Quarkus arcte cum GraalVM insertus sit, generare sane potest codicem specialium suggestum. Ad hoc faciendum, debes GraalVM installare et ambitum variabilem GRAALVM_HOME denota. Praeterea profile pro ecclesia subcriptio et nominat eam cum aedificando applicando;

mvn package -Pnative

Interestingly applicatio generatae probetur. Atque hoc interest quod exsecutio codicis indigenae a executione in JVM differre potest. The @SubstrateTest annotation runs platform-specifica application code. Reusing codicem testium exsistens uti hereditatis usu fieri potest, ex quo factum est, signum ad applicationem catastaeum-dependens probandi hoc modo spectabit:

@SubstrateTest
public class GreetingResourceIT extends GreetingResourceTest {

}

Generata imago in Docker fasciculari potest et in Kubernetes vel OpenShift currere, singillatim descripta instructiones.

instrumenta

Artus Quarkus cum Maven et Gradle adhiberi potest. Maven plene sustentatur, Gradle dissimilis. Infeliciter, in momento Gradle inane consilium generans non sustinet; est melius informationes in website textbook.

expansion

Quarkus est ambitus extensibilis. Currently est ordo 40 extensiones, quae varias functiones - ex subsidio addunt Ver DI continens ΠΈ Apache Camel ante colligationem et metricam editae ad cursus officia. Et iam extensio est ad applicationes scribendas in Kotlin, praeter Javam.

conclusio,

Opinor, Quarkus satis congruit cum trends temporis. Progressio Codicis Backend facilior et facilior fit, et haec compages amplius simplificat et accelerat servitium evolutionis, additis indigenis subsidiis Docker et Kubernetes. Ingens plus est constructum-in subsidiis ad GraalVM et generationem imaginum suggestorum dependens, quae officia re cito incipere permittit et modicum spatium memoriae capiat. Et hoc est magni momenti in nostro tempore massae passionis pro microserviis et architecturae servientibus.

Official site - quarkus.io. Exempla inceptorum in initio velox iam praesto sunt GitHub.

Source: www.habr.com