Table of Contents

Utilisation de Spring

Configuration

Les différentes configurations nécessaires à Spring sont faites dans des fichiers XML : springContext.xml, springAppContext.xml et springDataSource.xml.

Partage du contexte

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);

Accès aux beans

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)