Il principio IOC può essere implementato utilizzando:
-
Iniezione di dipendenza
-
Modello di localizzazione del servizio
Questo articolo supporta anche questi due approcci per l'implementazione del principio IOC.
Il contenitore IOC Spring prende il nome dal principio IOC che supporta l'implementazione IOC utilizzando Iniezione delle dipendenze , dove le implementazioni ( <bean/>
) possono essere iniettate in runtime come basate su costruttore o setter.
La mia comprensione è che il contenitore di servlet (Es .: Apache tomcat) nella sua implementazione segue il principio IOC perché in runtime vengono iniettate le informazioni di configurazione servlet (da web.xml
) (ulteriori nel prossimo paragrafo) per selezionare l'implementazione della classe servlet corrispondente basata su i dati configurati forniti in web.xml
.
Seguendo le regole di corrispondenza dei pattern URL, il contenitore Servlet prende le informazioni di configurazione di MySeervlet
da web.xml
e le ingeppa nel metodo GenericServlet::init(ServletConfig)
. Inietta la configurazione del servlet ma non l'implementazione del servlet.
GenericServlet::init(ServletConfig)
- > GenericServlet::init()
- > GenericServlet::service()
- > HTTPServlet::service()
- > MyServlet::doGet()
Lo scopo di entrambi i contenitori è diverso. Ma,
Il contenitore servlet utilizza lo schema di localizzazione del servizio per implementare il principio IOC?