微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 如何外化web.xml servlet init-param? Servlets的Spring DelegatingFilterProxy?

我有一个我无法修改的第三方servlet.它接受我想要外化的init-param(来自web.xml).

我可以使用DelegatingFilterProxy外化servlet过滤器init-param.这有效地将servlet过滤器定义移动到Spring中,其中有更强大的外化工具(例如:PropertyPlaceholderConfigurer,环境变量等)

我怎样才能为servlet做这个?

最佳答案
看起来你需要一个DelegatingServletProxy类,虽然这在Spring中不存在但是,我认为编码非常简单,使用DelegatingFilterProxy作为起点.

servlet只实现了一些具体的方法,因此委托应该是直截了当的.

好吧,我把钱放在嘴边!
编辑:下面是DelegatingServletProxy的基本实现.

你这样使用它:

>在web.xml中设置常用的spring上下文配置/ ContextListener,为webapp设置应用程序范围的spring上下文.
>将servlet添加到web.xml,其实现类为DelegatingServletProxy.这将取代您想要更改init-params的现有serlvet.为这个新的servlet设置init参数:proxyServletClass是servlet类的名称. proxyServletParams是spring配置中的Properties bean的名称.此属性bean用于为代理的servlet设置init参数.
>在spring配置中,添加一个定义init-params的新Properites bean

一些示例,在spring应用程序上下文中

arams" class="java.util.Properties">
   aramName">initParamValue

示例web.xml代码

cme.DelegatingServletProxy
    aram>
         aram-name>proxyServletClassaram-name>
         aram-value>your.original.servlet.ServletClassaram-value>
    aram>
    aram>
        aram-name>proxyServletParamsaram-name>
        aram-value>myServletParamsaram-value>
        
                
                                 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐