Obtenir le chemin vers le répertoire à partir du Printemps de haricot?
J'ai ce qui semble être un problème simple. J'ai un Ressort web app, déployé dans Tomcat. Dans une classe de service, je veux être capable d'écrire un nouveau fichier dans un répertoire appelé graphiques juste sous ma racine de l'application:
/
/WEB-INF
/graphs/
/css/
/javascript/
Ma classe de service est un Ressort de haricot, mais je n'ai pas un accès direct à ServletContext à travers le HttpServlet machines. J'ai aussi essayé de mise en œuvre de ResourceLoaderAware, mais ne peut toujours pas semblent attraper une poignée de ce que j'ai besoin.
Comment puis-je utiliser le Printemps pour obtenir un handle vers un répertoire dans mon application, de sorte que je puisse écrire un fichier? Merci.
OriginalL'auteur D.C. | 2010-03-22
Vous devez vous connecter pour publier un commentaire.
Si votre bean est géré par la webapp du printemps contexte, alors vous pouvez mettre en œuvre
ServletContextAware
, et le Printemps va injecter laServletContext
dans votre bean. Vous pouvez ensuite demander auServletContext
du réel, chemin du système de fichiers d'une ressource donnée, par exempleSi votre bean n'est pas à l'intérieur d'une webapp contexte, il devient assez moche, quelque chose comme peut de travail:
Il utilise le obsolète
ServletRequest.getRealPath
méthode, mais il doit encore travailler, maisRequestContextHolder
ne fonctionne que si elle est exécutée par le thread de demande.Correct. Le printemps des contextes n'ont pas à faire partie d'une webapp, ils peuvent exister de manière autonome.
OriginalL'auteur skaffman
@Tous
Le problème avec ces réponses sont-ils obtenir rassis ou de l'information pour faire les choses de plusieurs manières n'était pas évident à l'époque. Comme ce vieil Atari ordinateur que vous utilisez peut-être (sourire), les choses peuvent avoir changé!
Vous pouvez simplement
@Autowired
le ServletContext dans votre bean:OriginalL'auteur Frank C.