我希望能够动态检索“servlet 上下文路径”(例如 http://localhost/myapp
或 http://www.mysite.com
) 用于来自 Service spring bean 的 Spring Web 应用程序。
这样做的原因是我想在将要发送给网站用户的电子邮件中使用此值。
虽然从 Spring MVC Controller 执行此操作很容易,但从 Service bean 执行此操作并不那么明显。
谁能给点建议?
编辑:附加要求:
我想知道是否有一种方法可以在应用程序启动时检索上下文路径并让我的所有服务始终可以检索它?
最佳答案
如果您使用 ServletContainer >= 2.5,则可以使用以下代码获取 ContextPath:
import javax.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component
@Component
public class SpringBean {
@Autowired
private ServletContext servletContext;
@PostConstruct
public void showIt() {
System.out.println(servletContext.getContextPath());
}
}
关于spring - 从 Spring Web 应用程序中检索 servlet 上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236590/