在web项目的web.xml中配置的过滤器filter的init-param如何读取外部配置文件中的值

本文介绍如何在Java后端web项目中,将web.xml中过滤器Filter的init-param参数值从外部properties文件读取,以实现配置的动态化,避免每次上线手动修改。通过实现WebApplicationInitializer并覆盖onStartup方法,使用FilterRegistration设置从外部文件获取的参数值,从而实现过滤器配置的零硬编码。
摘要由CSDN通过智能技术生成

问题描述:
在web项目的web.xml中配置的过滤器Filter中经常会设置一些初始化参数init-param,其值基本上都是写死的,现在想从外部properties配置文件中去获取这些对应的参数值,应该怎么操作呢?
例如:在做CAS单点登录时,需要配置CAS服务器的地址,及客户端系统的地址,这两个地址直接写死在web.xml中的话,针对不同的客户系统,每次上线都需要手工修改这两个值,现在想从外部properties配置文件中读取这两个值
比如在做CAS单点登录时,需要配置CAS服务器的地址,及客户端系统的地址
实现方法:
新增一个类WebApplicationInitializer,继承AbstractAnnotationConfigDispatcherServletInitializer,重新方法onStartup(),在该方法中通过FilterRegistration进行注册Filter,注册Filter时针对其中的init-param值可以从外部properties文件中读取出来,然后设置到Filter中;具体实现方式如下所示,这样可以通过硬编码的形式实现过滤器的零配置化。


@Component
public class WebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
   
    private static final Logger LOGGER = Logger.getLogger(WebApplicationInitializer.class);

	@Override
    public void onStartup(ServletContext servletContext) throws ServletException {
   
		String path = LoadProperties.getPath();
		Properties properties = LoadProperties.loadProperties(path + "/default_setting.properties");
		String casServerLoginUrl = "", casServerUrlPrefix = "", serverName 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值