java filter过滤器中 注入配置文件properties获取配置文件中的值

想要获取application.properties中自定义的test.testUrl值

test.testUrl=/test/testUrl

一般在实体中加入@Vaule 注解就可生效

@Value("test.testUrl")
private String testUrl;

但是在filter中 需要用上下文对象来获取
filter的生命周期如下:
web应用程序启动时,web服务器将创建Filter的实例对象
并调用其init方法,完成对象的初始化功能

从而为后续的用户请求作好拦截的准备工作
filter对象只会创建一次,init方法也只会执行一次

也就是程序刚刚启动的时候 filter就被加载了 这个时候配置文件还没有被加载到呢

具体操作如下:
在filter的init中用上下文对象来获取

    private String testUrl;


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        ServletContext sc = filterConfig.getServletContext();
        WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(sc);
        testUrl=cxt.getEnvironment().getProperty("test.testUrl");
    }

这样就可以获取到配置文件中的值了。

楼主用的properties文件 yml应该同理,用yml的小伙伴可以留言是否好用哈
理解不当的地方欢迎大家指出~

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值