java - 如何注册 ContainerRequestFilter 并将变量传递给它?
问题描述
有没有办法将 ContainerRequestFilter 注册到 ResourceConfig 并将变量传递给它的构造函数?
以下是过滤器代码
public class TestRequestFilter implements ContainerRequestFilter{
String operationType;
public TestRequestFilter (){}
public TestRequestFilter (String opType){
this.operationType = opType;
}
@Override
public void filter(ContainerRequestContext requestContext) {
// TODO Auto-generated method stub
}
}
为了注册这个过滤器,我使用了 ResourceConfig 如下
public class MyApplication extends ResourceConfig {
/**
* Register JAX-RS application components.
*/
public MyApplication () {
register(TestRequestFilter.class);
register(JacksonFeature.class);
register(CustomerResource.class);
register(Initializer.class);
register(JerseyResource.class);
}
}
有什么方法可以用 opType 构造函数注册这个过滤器吗?
解决方案
使用单个构造函数创建类,创建对象并注册创建的对象。
public class TestRequestFilter implements ContainerRequestFilter{
private String operationType;
public TestRequestFilter (String opType){
this.operationType = opType;
}
@Override
public void filter(ContainerRequestContext requestContext) {
//your code
}
}
登记:
ResourceConfig.register(new TestRequestFilter("osType"));
推荐阅读
- javascript - 当我从 Xcode 运行时,React Native 项目无法加载
- ruby-on-rails - 如何根据特定日期范围对记录进行分组?
- javascript - 为数组中的每个项目绑定一个后缀
- ios - iOS 的 Google firebase Auth 文档中是否有错误?当我尝试代码时,这些是错误
- elasticsearch - Logstash 将关联数据添加到 elasticsearch
- swift - 将 UIButton 标题设置为所有屏幕尺寸的特定位置
- arrays - 如何检查字符串数组中的值是否存在
- c++ - 是否保证 std::string_view 文字以空值结尾?
- python - Python 请求代码使 Javascript 被 Web 浏览器禁用或不支持
- google-apps-script - 部署 gmail 插件后如何访问 AdminDirectory.Users.list()?