Bästa svaret
För närvarande i Java-teknikstapeln är Spring MVC högst upp och används i stor utsträckning för att bygga Enterprise Java-applikationer.
Spring MVC är mycket efterfrågad och uppdaterad. De släpper ibland nya versioner av våren. Vårsäkerhet är ett av de bästa sätten att skydda en applikation. Struts är forntida. Men det finns fortfarande eftersom de flesta Legacy-applikationerna byggdes med hjälp av det. Men knappast någon utvecklare skulle välja Struts för att bygga en applikation idag.
Ditt krav kan enkelt uppfyllas med: -Spring MVC: för REST api, klientservermodell, Service Oriented Architecure (SOA). -Spring Security: för att säkra din ansökan. -Vinter- eller vår JDBC-mall. (gå med Hibernate): för databashantering -MySQL för databas. -JUnit för enhetstestning.
Svar
Vårramverk består av ett antal moduler varav en är MVC Model View Controller under Web Domain.
Tänk på följande fågelperspektiv av fjädermoduler.
MVC: Du kan se att webbmodulen kallas MVC./Remoting. Denna modul består av all pannkodskod som krävs för att utveckla webbapplikationer. Detta inkluderar hanteringsförfrågningar, HTTP-metoder, URL-mappningar, visningsupplösare, JSP-taggbibliotek, sessioner. Se 22. Web MVC-ramverk för mer information.
IOC – Inversion of Control: ”Ring oss inte, vi ringer till dig”
Här kommer den knepiga delen. Som du kan se ingår IOC inte i ovanstående moduldiagram. IOC är en del av Spring Core-modulen tillsammans med många andra saker.
IOC är utöver våren. Det är en objektorienterad designprincip som minskar beroendet och ökar modulariteten och gör programmet förlängbart.
Som Martin Fowler säger är inversion av kontroll principen där ett programs kontrollflöde är inverterat: istället för att programmeraren kontrollerar flödet av ett program, de externa källorna (ramverk, tjänster, andra komponenter) tar kontroll över det.
IOC löser följande designproblem.
- Att koppla bort körningen av en uppgift från implementering.
- Att fokusera en modul på den uppgift den är avsedd för.
- För att befria moduler från antaganden om hur andra system gör vad de gör och istället förlitar sig på c ontracts.
- För att förhindra biverkningar vid byte av en modul.
Kommer till vad som är våren IOC.
Vår IOC är sättet att implementera IOC på våren. IOC kan uppnås på flera sätt. Dokumentation säger –
Det är en process där objekt definierar deras beroenden, det vill säga de andra objekten de arbetar med, endast genom konstruktörargument, argument till en fabriksmetod eller egenskaper som ställs in på objektinstansen efter att den har konstruerats eller returnerats från en fabriksmetod. Containern injicerar dessa beroenden när den skapar bönan. Denna process är i grund och botten det omvända, därav namnet Inversion of Control (IoC), för själva bönan som kontrollerar instantiering eller plats för dess beroenden genom att använda direkt konstruktion av klasser eller en mekanism som Service Locator -mönstret.
På våren org.springframework.beans
och org.springframework.context
innehåller implementeringen av IOC som heter Spring IOC Container. Gränssnittet org.springframework.context.ApplicationContext
representerar Spring IoC-behållaren och är ansvarig för att starta, konfigurera och montera objekten (på våren är objekten Beans).
Läs igenom 7. IoC-behållaren och BeanFactory (Spring Framework 4.3.7.RELEASE API) för fullständiga detaljer.