我试图找到在Tomcat中运行的Spring webapp中传递复杂配置的最佳方法.目前,我使用JNDI将数据源和字符串从Tomcat上下文传递到webapp,这很有效.
但是,让我说我需要选择通知服务的实现.Spring无法有条件地选择实例化哪个bean(尽管在过去我使用JNDI字符串通过设置contextConfigLocation来导入预定义的bean配置).
我还看到很多webapps提供了一个配置工具,它将创建一个自定义WAR文件.在我看来,这是一种糟糕的形式,如果没有其他原因,它会阻止从上游重新部署WAR而不进行多次检查,以确保所有配置都已重新应用.
理想情况下,我可以在webapp之外提供存在于文件系统上的Spring XML文件.但是,spring import指令似乎没有解决$ {}变量,因此无法提供自定义.
我是否可以使用任何技术将复杂配置与webapp正确分开?
我试图在我的Spring WebMVC 3.0.5控制器中使用ResponseEntity返回类型.我正在返回一个图像,所以我想使用以下代码将Content Type设置为image/gif:
@RequestMapping(value="/*.gif")
public ResponseEntity<Resource> sendGif() throws FileNotFoundException {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_GIF);
return new ResponseEntity<Resource>(ctx.getResource("/images/space.gif"), headers, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
但是,返回类型被重写为ResourceHttpMessageConverter中的text/html.
除了实现我自己的HttpMessageConverter并将其注入AnnotationMethodHandlerAdapter之外,有什么方法可以强制使用Content-Type?
我们有一个托管设置,我们有一个顶级域名,我们在子路径下托管Web应用程序.例如:
/projects -> Plone /interal -> Tomcat etc
在这种情况下,我们需要一种方法来告诉后端的Web应用程序它的基本路径是什么,以便它可以正确地生成其视图和静态内容的链接.对于上面的例子,这很好.
我们刚刚开始使用由女服务员服务的金字塔,但到目前为止我们还没弄清楚如何做到这一点.是否有一种干净的方式在Waitress中配置此基本路径,或者是否有一个更灵活的应用服务器,我们可以使用它来支持Pyramid?