Les différentes configurations nécessaires à Spring sont faites dans des fichiers XML : springContext.xml, springAppContext.xml et springDataSource.xml.
Les modules ePims déclaré dans l'application EAR partageront le context spring définit dans eP-Core et donc les beans 'singleton' définis dans ce contexte. Voir la doc de l'architecture ePims …
Pour un module d'application web, il est nécessaire de définir le context spring parent que l'on souhaite utiliser dans le fichier web.xml:
<!-- Spring Context --> <context-param> <param-name>locatorFactorySelector</param-name> <param-value>classpath*:springContext.xml</param-value> </context-param> <context-param> <param-name>parentContextKey</param-name> <param-value>span>epCore.context</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
L'initialisation du contexte Spring peut aussi se faire dans hors partage du contexte (pour les tests JUnit par exemple) il est également possible d’utiliser ldans une application :
String[] confFiles = {"/springAppContext.xml","/springDataSource.xml"}; ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(confFiles);
Dans le code des applications utilisant le module eP-Core, lorsque l'on souhaite accéder à un des beans(services) définis dans spring, on utilise la classe ServiceLocator :
ServiceLocator locator = new ServiceLocator(context); //Contexte initialisé par l'application IStudyService service= locator.getStudyService();
Dans le cas d'application Web initialisé comme indiqué ci-dessus, l'accès aux contexte Spring se fait via le servlet. Dans le cas de JSF
ServletContext servletContext = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()); ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); ServiceLicator serviceLocator_ = new ServiceLocator(context);
(Continuez vers la suite de la documentation ⇒ epcorehibernate)