2013-08-02 1 views
2

Est-il possible d'obtenir l'URL de l'application dans le travail programmé de printemps (@Scheduled annotated)? Je veux créer un travail qui envoie un email avec l'URL à la page spécifique sur l'application, disons http://localhost:8080/appName/some/specific/url. Le problème est que la partie http://localhost:8080/ sera différente dans chaque environnement (local, dev, production etc).URL de l'application printanière dans le travail planifié

Existe-t-il un moyen simple d'obtenir une URL de base dans la méthode côté serveur qui est exécutée par Spring Scheduler?

Répondre

2

Je fais cela avec un fichier de propriétés. This tutorial vous dit comment vous pouvez le faire. La seule partie complexe est que vous avez besoin d'un moyen de modifier la valeur que le fichier de propriétés référence pour chacun de vos différents environnements.

0

Il n'existe aucun moyen direct d'obtenir l'URL de base dans votre planificateur. Vous voudrez peut-être regarder pour ce travail contournements, comme

  1. Utilisez un fichier de propriétés url magasin pour chaque environnement

  2. Avoir un haricot Configurartion qui met en œuvre ServletContextAware. Ce bean serait automatiquement averti lorsqu'un contexte Web est initialisé.

    public class AppConfig implémente ServletContextAware {

    private String baseUrl; 
    
        public String getBaseUrl(){ 
          return baseUrl; 
        } 
    
        public void setServletContext(ServletContext servletContext){ 
         this.baseUrl=servletContext.getRealPath("/"); 
        } 
    } 
    
+0

Celui-ci me retourne le chemin réel sur le disque comme/data/home/Espace de travail/tomcat/webapps/..... donc je pense qu'il ce n'est pas la chose que je cherche – wojtek

Questions connexes