【发布时间】:2015-08-16 23:51:06
【问题描述】:
我正在尝试确定 spring-boot、jersey 以及 jersey 和 spring-boot 上下文如何相互关联。
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
当我将它标记为 @Provider 并让 Jersey 查找它所在的包时,它找不到它。当我将它设为@Component 时它会起作用。
@Configuration
@ApplicationPath("/api/v1")
public class JerseyConfig extends ResourceConfig{
public JerseyConfig() {
// DOESNT FIND MY CORSFilter as Provider
this.packages("com.mypackage.rest");
}
}
@Configuration 注解是否使 JerseyContext 成为 Spring bean?然后 spring 注入 CORSFilter 是因为它找到了一个 Filter 类型的组件?这里发生了什么?
【问题讨论】:
标签: java spring jersey spring-boot jax-rs