这感觉就像一个基本问题,但我没有太多运气谷歌搜索。
我的应用程序连接到SMTP服务器并通过它发送邮件。我需要根据部署应用程序的环境来配置此SMTP服务器。
如何指定在我的web.xml配置文件中指定SMTP服务器名称并从我的Spring MVC 3.0控制器访问它?
控制器不会扩展或实现任何操作。它是使用@Controller
和@RequestMapping
完全注释的。根据我在网上看到的,人们通过servlet API访问context-params。作为注释驱动,我无权访问servlet对象。
答案 0 :(得分:2)
我解决了这个问题。
让您的控制器实现ServletContextAware,这需要一个名为
的方法setServletContext(ServletContext servletContext)
如果您的控制器是ServletContextAware,Spring MVC会将servlet上下文注入此方法。
在控制器上创建一个私有变量,用于存储注入上述方法的servletController。您现在可以像使用常规servlet一样使用servletContext。
第h
答案 1 :(得分:2)
添加Servletcontext的实例并自动装配它对我有用
@Controller
public MyController {
// other instances relevant to your requirement
@Autowired
private ServletContext sCtx;
//other methods relevant to your requirement
}
答案 2 :(得分:1)
我认为以下也应该有效:
void action(final HttpServletRequest request) {
final paramValue = request.getSession().getServletContext().getInitParameter("paramName");
...
}