Java-tekniker

Slutförd

I den här lektionen skiljer vi mellan de olika typerna av Java-ramverk, servrar och plattformar.

Spring Framework

Spring Framework är ett programramverk och en IoC-container (inversion av kontroll). Spring har tidigare använts för att komplettera modellen Enterprise JavaBeans (EJB). Dess kärnfunktioner är:

  • Beroendeinmatning
  • Aspektorienterad programmering
  • Verksamhetsabstraktion

Spring Boot

Spring Boot körs ovanpå Spring Framework och har en åsiktsbestämd automatisk konfiguration. Spring Boot-program körs fristående och passar perfekt för mikrotjänster.

Spring Data

Spring Data förenklar dataåtkomsten för relationsdatabaser och icke-relationella databaser, MapReduce-ramverk och molnbaserade datatjänster.

Spring Security

Spring Security är de facto standard för att skydda Spring-baserade program. Den erbjuder en hög nivå av autentisering och åtkomstkontroll. Spring Security integreras till exempel bra med Active Directory.

Spring Cloud

Spring Cloud används för distribuerade system. Spring Cloud levereras med tjänstidentifiering, konfigurationshantering, övervakning och en bra utvecklarupplevelse.

Spring Batch

Spring Batch är ett enkelt ramverk för robusta batchprogram som är viktiga för den dagliga driften.

MicroProfile och Jakarta EE

Du kan titta på MicroProfile och Jakarta Enterprise Edition (EE) som en uppföljning av Java EE-specifikationerna med öppen källkod.

MicroProfile är en uppsättning specifikationer för mikrotjänstarkitekturer. Det kallar sig ett öppet forum för att optimera Enterprise Java för en mikrotjänstarkitektur. MicroProfile syftar till att förnya flera implementeringar och samarbeta inom gemensamma intresseområden.

Jakarta EE är en uppsättning specifikationer för att skapa företagsprogram. Dess modulariserade struktur gör det möjligt för utvecklare att skapa effektiva programvarulösningar. Du kan paketera Jakarta EE-program som antingen EAR-filer eller WAR-filer.

Webbprofil är en delmängd av Jakarta EE för serverdelstjänster med webbfokus, men oroa dig inte! Du kan lägga till specifika API:er för företagsplattformen ovanpå den.

Programservrar

Java EE-program måste distribueras till Java EE-kompatibla programservrar (Weblogic, WebSphere, WildFly, GlassFish, Payara med flera).

  • Apache Tomcat är en HTTP-server och en Java Servlet-container. Den implementerar specifikationerna Servlet, Java Server Pages (JSP), Java Expression Language och Java WebSocket.

  • Oracle Weblogic Server är en enhetlig och utökningsbar plattform för utveckling, distribution och körning av företagsprogram. Weblogic Server erbjuder en robust, mogen implementering av Java EE och Jakarta EE.

  • Red Hat JBoss Enterprise Application Platform (JBoss EAP) ger säkerhet och prestanda i företagsklass för både lokala och virtuella implementeringar, eller i privata, offentliga moln eller hybridmoln.

  • WildFly är upstreamprojektet med öppen källkod för JBoss EAP. Den här communitydrivna sorten är bra för utveckling och testning.

  • IBM WebSphere Application Server (WAS) är en flexibel, säkerhetsrik Java-serverkörningsmiljö för företagsprogram. Den fokuserar på hög tillförlitlighet. Den stöder mikrotjänster och standardbaserade programmeringsmodeller. Du kan modernisera i din egen takt, få bättre insyn i arbetsbelastningar, analysera företagsprogram och gå vidare till Kubernetes.

  • Open Liberty är den communitydrivna versionen av WAS med öppen källkod.

  • Oracle GlassFish är referensimplementeringen av många Java EE-webbstandarder (inklusive Servlet och JSP).

Andra ramverk för mikrotjänstorienterade arkitekturer

  • Netty är ett icke-blockerande I/O (NIO) klient-/serverramverk. Det möjliggör snabb och enkel utveckling av nätverksprogram som protokollservrar och klienter. Det förenklar och effektiviserar nätverksprogrammering, till exempel TCP- och UDP-socketservrar. Netty är ett asynkront, händelsedrivet nätverksprogramramverk för snabb utveckling av underhållsbara protokollservrar och klienter med höga prestanda.

  • Quarkus är en Kubernetes-inbyggd Java-stack som är skräddarsydd för OpenJDK HotSpot och GraalVM. Quarkus får mer och mer fart. Förresten finns det mer prestandafokuserade ramverk som detta, till exempel Vert.x, Helidon, Payara Micro och KumuluzEE.

  • Micronaut är ett modernt, JVM-baserat, fullstacksramverk för att skapa modulära, enkelt testbara mikrotjänster och serverlösa program. Micronaut har en beroendeinmatning och aspektorienterad programmeringskörning som inte använder någon reflektion, vilket gör det enklare för Micronaut-program att köras på GraalVM.