Lente Kader
| Lente Kader | ||
|---|---|---|
|
| ||
| 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 control-wrapper – Maakt configuratie van toepassingscomponenten en levenscyclusbeheer van Java-objecten mogelijk, voornamelijk via afhankelijkheidsinjectie .
- Aspectgeoriënteerd programmeren : Maakt de implementatie van traversal-routines mogelijk.
- Gegevenstoegang : werken met RDBMS op het Java-platform, gebruikmakend van Java Database Connectivity en Relational Object Mapping - tools met NoSQL-databases .
- Transactiebeheer : verenigt verschillende beheer-API's en coördineert transacties voor Java-objecten.
- Modelview-controller : een raamwerk op basis van HTTP en servlets , dat tools biedt voor de uitbreiding en aanpassing van webapplicaties en RESTful -webservices.
- Remote Access Framework : Maakt import en export van Java-objecten in RPC -stijl mogelijk via netwerken die RMI- , CORBA- en HTTP - gebaseerde protocollen ondersteunen , inclusief webservices ( SOAP ).
- Conventie boven configuratie : de Spring Roo -modulebiedt een snelle oplossing voor de ontwikkeling van applicaties op basis van het Spring Framework, waarbij eenvoud wordt bevorderd zonder aan flexibiliteit in te boeten.
- Batchverwerking : een raamwerk voor verwerking van grote volumes met functies voor loggen/tracering, transactieverwerking, taakverwerkingsstatistieken, opnieuw opstarten van taken en resourcebeheer.
- Authenticatie en autorisatie – Configureerbare beveiligingsprocessen die een reeks standaarden, protocollen, tools en praktijken ondersteunen via het subproject Spring Security (voorheen Acegi).
- Beheer op afstand : Zichtbaarheid van configuratie en beheer van Java-objecten voor lokale of externe configuratie via JMX .
- Berichten : Configureerbaar register van berichtontvanger-objecten, voor transparant gebruik van de via JMS , een verbetering van het verzenden van berichten ten opzichte van standaard JMS API's.
- Testen : Class-ondersteuning voor de ontwikkeling van unit-tests en integratie.
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
- Google-gids
- Apache Hive Mind
- Lente WebFlow
Notities en referenties
- ↑ a b Spring Framework 5.1.6, 5.0.13 en 4.3.23 nu beschikbaar
- ↑ SpringSource Feature Tour
- ↑ Joltwinners 2006
- ↑ JAX Innovation Award Gewinner 2006
- ↑ SpringSource.org
- ↑ Volgende stop: Spring Framework 4.0. (in het Engels) . Ontvangen 24 september 2019.
- ↑ "Spring: het raamwerk voor complexe Java-toepassingen" . IONOS digitale gids . Ontvangen op 28 juni 2022 .
- ↑ 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
- ↑ 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.
- ↑ Lente VS EJB3
- ↑ "HooivorkFAQ" . Ontvangen 6 juni 2006 .
Bibliografie
- Mak, Gary (1 september 2010). Lenterecepten: een probleem-oplossingsbenadering (tweede editie). Druk op . p. 1104. ISBN 1-4302-2499-1 .
- Muren, Craig (28 november 2010). Lente in actie (derde editie). Bemanning . p. 700. ISBN 1-935182-35-8 .
- Muren, Craig; Breidenbach, Ryan (16 augustus 2007). Lente in actie (tweede editie). Bemanning . blz. 650 . ISBN 1-933988-13-4 .
- Johnson, Rod; Holler, Jurgen; Arendsen, Aleph; Risberg, Thomas; Sampaleanu, Colin (8 juli 2005). Professionele Java-ontwikkeling met het Spring Framework (eerste editie). Wrox-pers . p. 672. ISBN 0-7645-7483-3 . Gearchiveerd van het origineel op 24 november 2010 . Ontvangen 18 januari 2013 .
- Harrop, Rob; Machacek, Jan (31 januari 2005). Pro Spring (eerste editie). Druk op . blz. 832 . ISBN 1-59059-461-4 . Gearchiveerd van het origineel op 18 februari 2012 . Ontvangen 18 januari 2013 .
- Johnson, Rod; Jürgen, Höller (23 oktober 2002). J2EE Ontwikkeling zonder EJB (eerste editie). Wrox-pers . blz. 768 . ISBN 0-7645-5831-5 .
- Johnson, Rod (oktober 2002). Expert One-on-one J2EE Design en Development (eerste editie). Wrox-pers . p. 750. ISBN 0-7645-4385-7 .
Externe links
- Lente Kader
- Spring Framework-tutorials in het Spaans
- Spring Framework in het Spaans - Google Group
- Lente Spaans
- SpringActionScript
- LenteBatch
- Het Spring Framework - Referentiedocumentatie
- Lente: de kunst van het gebruik van GRASP-patronen
- Blossom: Spring Framework-integratiemodule voor Magnolia CMS
- Spring Tutorials-concept met Spring-voorbeelden Gearchiveerd op 24 februari 2021 bij de Wayback Machine .
- tutorials over lenteframework
- Voorjaar walkthrough
- Lente Jdbc-sjabloon 7