Beste antwoord
Momenteel staat Spring MVC in de Java-technologiestack bovenaan en wordt op grote schaal gebruikt om Enterprise Java-applicaties te bouwen.
Spring MVC is in grote vraag en bijgewerkt. Ze brengen van tijd tot tijd nieuwe versies van de lente uit. Veerbeveiliging is een van de beste manieren om een applicatie te beschermen. Struts is oud. Maar het bestaat nog steeds omdat de meeste Legacy-applicaties ermee zijn gebouwd. Maar bijna geen enkele ontwikkelaar zou Struts kiezen om vandaag een applicatie te bouwen.
Aan uw vereiste kan eenvoudig worden voldaan door gebruik te maken van: -Spring MVC: voor REST api, client-servermodel, Service Oriented Architecure (SOA). -Spring Security: voor het beveiligen van uw applicatie. -Hibernate of Spring JDBC-sjabloon. (ga met Hibernate): voor database-afhandeling -MySQL voor database. -JUnit voor het testen van eenheden.
Antwoord
Spring framework bestaat uit een aantal modules waarvan er één MVC Model View Controller is onder Web Domain.
Beschouw de volgende vogelvlucht van Spring-modules.
MVC: U kunt zien dat de webmodule MVC./Remoting wordt genoemd. Deze module bevat alle ketelplaatcodes die nodig zijn om webapplicaties te ontwikkelen. Dit omvat het afhandelen van verzoeken, HTTP-methoden, URL-toewijzingen, view resolvers, JSP-tagbibliotheken, sessies. Verwijs naar 22. Web MVC-framework voor meer details.
IOC – Inversion of Control: “Bel ons niet, we bellen u”
Hier komt het lastige gedeelte. Zoals u kunt zien, maakt IOC geen deel uit van het bovenstaande modulediagram. IOC maakt samen met vele andere dingen deel uit van de Spring Core-module.
IOC gaat verder dan Spring. Het is een objectgeoriënteerd ontwerpprincipe dat de afhankelijkheid vermindert en de modulariteit vergroot en het programma uitbreidbaar maakt.
Zoals Martin Fowler zegt, is inversie van controle het principe waarbij de controlestroom van een programma wordt omgekeerd: in plaats van dat de programmeur controleert de stroom van een programma, de externe bronnen (framework, services, andere componenten) nemen de controle erover.
IOC lost de volgende ontwerpproblemen op.
- Om de uitvoering te ontkoppelen van een taak uit implementatie.
- Om een module te focussen op de taak waarvoor deze is ontworpen.
- Om modules te bevrijden van aannames over hoe andere systemen doen wat ze doen en in plaats daarvan vertrouwen op c ontracts.
- Om bijwerkingen te voorkomen bij het vervangen van een module.
Komend naar wat lente is IOC.
Spring IOC is de manier om IOC in het voorjaar te implementeren. IOC kan op meerdere manieren worden bereikt. Documentatie zegt –
Het is een proces waarbij objecten hun afhankelijkheden definiëren, dat wil zeggen de andere objecten waarmee ze werken, alleen door constructorargumenten, argumenten voor een fabrieksmethode of eigenschappen die zijn ingesteld op de objectinstantie nadat het is geconstrueerd of geretourneerd vanuit een fabrieksmethode. De container injecteert die afhankelijkheden wanneer deze de bean maakt. Dit proces is fundamenteel het omgekeerde, vandaar de naam Inversion of Control (IoC), van de bean zelf die de instantiatie of locatie van zijn afhankelijkheden regelt door middel van een directe constructie van klassen, of een mechanisme zoals het Service Locator -patroon.
In het voorjaar org.springframework.beans
en org.springframework.context
bevat de implementatie van IOC genaamd Spring IOC Container. De interface org.springframework.context.ApplicationContext
vertegenwoordigt de Spring IoC-container en is verantwoordelijk voor het instantiëren, configureren en samenstellen van de objecten (in het voorjaar zijn de objecten Beans).
Doorlezen 7. De IoC-container en BeanFactory (Spring Framework 4.3.7.RELEASE API) voor volledige details.