Principio IOC: implementazione del contenitore servlet

0

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::s‌​er‌​vice() - > HTTPServ‌​let:‌​:service() - > My‌​Servle‌​t::doGet()

Lo scopo di entrambi i contenitori è diverso. Ma,

Il contenitore servlet utilizza lo schema di localizzazione del servizio per implementare il principio IOC?

    
posta user1787812 01.10.2017 - 16:01
fonte

1 risposta

0

I contenitori servlet forniscono un ServiceLoader che può essere interpretato come implementazione del pattern locator del servizio .

In questo caso la tua applicazione è liberamente accoppiata ai servizi bloccati nel contenitore. L'implementazione dei servizi restituiti dal contenitore può essere modificata riconfigurando il contenitore senza toccare l'applicazione.

    
risposta data 01.10.2017 - 16:24
fonte