Til Dependency Injection i NSP's komponenter benyttes spring frameworket.
Der oprettes en eller flere konfigurationsklasser, der er mærket med @Configuration. Dette er stederne, hvor Spring-beans (med @Bean) definerers og konfiguration af komponentene foretages. Der skal dermed på NSP anvendes konfigurationsklasser og ikke xml-filer.
Konfigurationsklasser bør være opdelt baseret på funktionalitet eller moduler. For eksempel kan der være en konfigurationsklasse for databasen, en for webservices, en for sikkerhed osv. Ved flere klasser samles de ved brug af @Import i en enkelt klasse.
@Bean-metoder:
Brug @Bean-metoder i konfigurationsklasserne til at definere Spring-beans.
Navngiv metoder og beans fornuftigt, så det er nemt at forstå, hvilken rolle de spiller i applikationen (DAO, WsdlResponseGenerator, StatusResponseGenerator mm.).
Afhængigheder og injection:
Brug @Autowired for at injecte afhængigheder i HttpServletten.
ApplicationContext:
Opret og konfigurer en ApplicationContext ved hjælp af AnnotationConfigApplicationContext.
Denne skal konfigureres med de konfigurationsklasser der er relevante
Gem ApplicationContext i ServletContext for at gøre det tilgængeligt for resten af applikationen.
Lifecycle Management:
Brug ServletContextListener-interfaces til at initialisere og rydde op i ApplicationContext i komponenten. Sørg for, at ApplicationContext lukkes korrekt, når webapplikationen stoppes.
Injection i servlets:
På servlettens init-metode skal AnnotationConfigApplicationContext’en hentes (via ServletContexten) og herigennem skal den aktuelle Servlet have sine afhængigheder injected. Dette skal foregå ved kald til autowireBean og give Servlet-instansen med.