想要获取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的小伙伴可以留言是否好用哈
理解不当的地方欢迎大家指出~