我正在使用 Spring MVC 编写一个 Java Web 应用程序。我有一个后台进程,它通过数据库查找必须通过电子邮件发送给我的用户的通知。这些电子邮件消息需要包含指向应用程序的超链接。对于网络应用程序来说,这似乎是一种相当常见的模式,但我遇到了麻烦。
如何使用服务器名称和上下文路径派生我的应用程序的完全限定 URL?我无权访问 HttpServletRequest 中的任何方法,因为我将其作为后台进程运行,而不是响应 Web 请求。我能做的最好的就是访问 ServletContext。
目前我将基本 URL 放入配置文件并在启动时读取它,但该应用程序将获得许可并部署到客户的应用程序服务器,如果可能的话,我希望他们不必手动配置它。