close

Lente Kader

Ga naar navigatie Ga naar zoeken
Lente Kader
Spring Framework Logo 2018.svg
Algemene informatie
programmatype: framework voor mobiele webapplicaties
ontwikkelaar LenteBron
Eerste uitgave 1 oktober 2002
Licentie Apache-licentie 2.0
Werkelijke staat Actief
Technische informatie
gepland in
Ondersteunde platforms java virtuele machine
versies
Laatste stabiele versie 5.1.6 (1 april 2019 (3 ​​jaar, 6 maanden en 16 dagen) [ 1 ] ​)
Links

Spring is een open source inversie van control container en applicatie-ontwikkelingsframework voor het Java-platform . [ 2 ]

De eerste versie is geschreven door Rod Johnson, die het uitbracht samen met de publicatie van zijn boek Expert One-on-One J2EE Design and Development (Wrox Press, oktober 2002). Het framework werd oorspronkelijk uitgebracht onder de Apache 2.0-licentie in juni 2003. De eerste grote release was versie 1.0, die verscheen in maart 2004 en werd gevolgd door verdere mijlpalen in september 2004 en maart 2005. Versie 1.2.6 Spring Framework won Jolt Awards en Jax Innovation Awards in 2006. [ 3 ] ​[ 4 ]​ Spring Framework 2.0 werd uitgebracht in 2006, versie 2.5 in november 2007, Spring 3.0 in december 2009 en Spring 3.1 twee jaar later. middag. [ 5 ] De start van de ontwikkeling van versie 4.0 werd aangekondigd in januari 2013. [ 6 ] De huidige versie is 5.1.6. [ 1 ]

Hoewel de fundamentele kenmerken van het Spring Framework kunnen worden gebruikt in elke applicatie die in Java is ontwikkeld, zijn er verschillende uitbreidingen voor het bouwen van webapplicaties op het Java EE -platform . Hoewel het geen bepaald programmeermodel oplegt, is dit raamwerk populair geworden in de gemeenschap omdat het wordt beschouwd als een aanvulling op het EJB-model ( Enterprise JavaBean ).

Geschiedenis

De eerste onderdelen van wat het Spring Framework is geworden, werden in 2000 geschreven door Rod Johnson , terwijl hij als onafhankelijk adviseur werkte voor zijn klanten in de financiële sector in Londen. Tijdens het schrijven van het boek Expert One-on-one J2EE Design And Development (Programmer to programmer) breidde Rod zijn code uit om zijn visie vast te leggen over hoe applicaties die werken met verschillende onderdelen van het J2EE -platform eenvoudiger en efficiënter zouden kunnen worden. en bedrijven gebruikten toen.

In 2001 werden de dominante programmeermodellen voor webgebaseerde applicaties aangeboden door de Java Servlet API en de Enterprise JavaBeans , beide specificaties gemaakt door Sun Microsystems in samenwerking met andere leveranciers en belanghebbenden die een grote populariteit genoten in de Java-gemeenschap. Applicaties die niet web-based waren, zoals client-based applicaties of batchapplicaties , konden worden geschreven op basis van open source of commerciële tools en projecten die de functies boden die nodig waren voor die ontwikkelingen.

Ten slotte, na de publicatie van zijn boek in 2002, presenteerde Rod Johnson voor het eerst zijn code voor het Java Interface 21-framework dat de basis zou worden van het Spring-framework [ 7 ] . Er werd een klein team van ontwikkelaars gevormd in de hoop te werken aan de uitbreiding van het framework en in februari 2003 werd een project op Sourceforge gecreëerd . Na meer dan een jaar aan de ontwikkeling ervan te hebben gewerkt, brachten ze in maart 2004 een eerste versie (versie 1.0) uit. Na deze release , Spring kreeg veel populariteit in de Java-gemeenschap, mede dankzij het gebruik van Javadoc en bovengemiddelde referentiedocumentatie voor een open source-project.

Het Spring Framework werd in 2004 echter ook zwaar bekritiseerd en is nog steeds onderwerp van verhitte discussies. Ten tijde van de eerste grote release zagen veel ontwikkelaars en opinieleiders Spring als een grote stap vooruit ten opzichte van het traditionele programmeermodel; dit gold vooral voor Enterprise JavaBeans. Een van de ontwerpdoelen van het Spring Framework is het gemak van integratie met bestaande J2EE-standaarden en commerciële tools. Dit neemt gedeeltelijk de noodzaak weg om de kenmerken ervan vast te leggen in een specificatiedocument dat is opgesteld door een officiële commissie en dat kan worden bekritiseerd.

Het Spring Framework zorgde ervoor dat technieken die de meeste programmeurs niet kenden in zeer korte tijd populair werden. Het meest opvallende voorbeeld is inversie van controle . In 2004 genoot Spring een extreem hoge acceptatiegraad en door zijn eigen AOP - framework ( Aspect -Oriented Programming ) aan te bieden, maakte het zijn programmeerparadigma populairder in de Java-gemeenschap. [ citaat nodig ]

In 2005 overtrof Spring de acceptatiegraad van het voorgaande jaar als gevolg van nieuwe releases en meer functies die werden toegevoegd. Het gemeenschapsforum dat werd gevormd rond het Spring Framework (The Spring Forum), dat eind 2004 van start ging, hielp ook de populariteit van het framework te vergroten en is sindsdien uitgegroeid tot de belangrijkste bron van informatie en hulp voor zijn gebruikers.

Modules

Het Spring Framework bestaat uit verschillende modules die een scala aan diensten bieden:

Inversie van controlecontainer

Het hart van het Spring Framework is de inversion of control (IoC) container. Het is zijn taak om toepassingsobjecten te instantiëren, initialiseren en verbinden, evenals een aantal extra functies te bieden die in Spring beschikbaar zijn gedurende de levensduur van het object. [ 8 ]

De objecten die door de container worden gemaakt en beheerd, worden beheerde objecten of bonen genoemd . Deze objecten zijn van het type POJO . Om zijn taak uit te voeren, heeft de container informatie nodig die aangeeft hoe de bonen moeten worden geïnstantieerd en met elkaar worden verbonden . Deze informatie wordt configuratiemetadata genoemd. Er zijn verschillende manieren om deze informatie te verstrekken: XML-gebaseerd, annotatiegebaseerd of Java-objectgebaseerd (sinds Spring 3.0). De container is onafhankelijk van de metagegevensindeling van de configuratie. De gebruiker kan elk gewenst formaat gebruiken en zelfs mixen in dezelfde applicatie. [ 8 ]

Objecten kunnen worden verkregen door het opzoeken van afhankelijkheid of door injectie van afhankelijkheid . [ 9 ] Dependency lookup is een model waarbij het bevattende object wordt gevraagd naar een object met een specifieke naam of van een specifiek type. Afhankelijkheidsinjectie is een model waarin de container objecten op naam doorgeeft aan andere objecten, hetzij via constructormethoden, eigenschappen of fabrieksmethoden.

In veel gevallen hoef je bij het gebruik van andere delen van het Spring Framework de Wrapper niet te gebruiken, hoewel het gebruik ervan je waarschijnlijk in staat stelt een applicatie gemakkelijker te configureren en aan te passen. De Spring Container biedt u een consistent mechanisme voor het configureren van uw applicaties en integreert met bijna alle Java-omgevingen, van kleine applicaties tot grote bedrijfsapplicaties.

Via het Pitchfork- project kan de container gedeeltelijk worden omgebouwd tot een EJB 3.0- container . Sommigen bekritiseren het Spring Framework omdat het niet voldoet aan de normen. [ 10 ] SpringSource ziet EJB 3-compliance echter niet als een belangrijk doel en stelt dat het Spring Framework en de container krachtigere programmeermodellen mogelijk maken. [ 11 ]​ Je maakt geen object, maar beschrijft hoe het gemaakt moet worden, door het te definiëren in het Spring configuratiebestand. Je roept de services en componenten niet aan, maar je geeft aan welke services en componenten moeten worden aangeroepen, door ze te definiëren in de Spring-configuratiebestanden. Dit maakt de code gemakkelijker te onderhouden en gemakkelijker te testen met behulp van Dependency Injection (IoC).

Zie ook

Notities en referenties

  1. a b Spring Framework 5.1.6, 5.0.13 en 4.3.23 nu beschikbaar
  2. SpringSource Feature Tour
  3. Joltwinners 2006
  4. JAX Innovation Award Gewinner 2006
  5. SpringSource.org
  6. Volgende stop: Spring Framework 4.0. (in het Engels) . Ontvangen 24 september 2019.
  7. "Spring: het raamwerk voor complexe Java-toepassingen" . IONOS digitale gids . Ontvangen op 28 juni 2022 . 
  8. a b Begin lente Gearchiveerd op 19 februari 2018, bij de Wayback Machine .. Hoofdstuk 2. Mert Çalıskan en Kenan Sevindik Uitgever John Wiley & Sons, Inc. 2015
  9. Wat is het verschil tussen het opzoeken van afhankelijkheid en injectie van afhankelijkheid - Spring Forum . Forum.springsource.org (2009-10-28). Opgehaald op 2013-11-24.
  10. Lente VS EJB3
  11. "HooivorkFAQ" . Ontvangen 6 juni 2006 .  

Bibliografie

Externe links