在不是Controller的Spring bean中构建HTTP链接

时间:2009-06-22 21:29:40

标签: spring

对于通过电子邮件发送用户确认链接的bean,我想动态生成URL,这意味着我应该知道:

  • 协议;
  • 服务器(虚拟主机)名称;
  • 服务器端口
  • 上下文路径。

应用程序正在运行。

那时我不会运行Controller,所以我想以某种方式检索这些数据。

我发现ServletContextAware因此我将其用于上下文路径,但其余部分则不知道。我在哪里可以找到它们?

2 个答案:

答案 0 :(得分:2)

我不确定您是否可以在不处理请求时获取服务器名称/端口号。 另一方面,如果您正在处理请求,可以使用ServletRequest interface

答案 1 :(得分:1)

您可以使bean定义请求范围,因此Spring将为每个http请求创建一个新的。然后,您可以选择声明@Autowired HttpServletRequest字段,Spring将为您提供。然后,您可以使用该请求对象来构建您的URL。

有一些关于范围豆的问题(见here),但没有什么严重的。