我想要ETag支持.为此目的,有一个ShallowEtagHeaderFilter完成所有工作.如何添加它而不在我的声明web.xml(实际上不存在,因为我到目前为止没有它的某种方式得到它)?
PS我使用Spring Boot 1.1.4
PPS这是一个完整的解决方案
package cuenation.api;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.ShallowEtagHeaderFilter;
import javax.servlet.DispatcherType;
import java.util.EnumSet;
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean shallowEtagHeaderFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new ShallowEtagHeaderFilter());
registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
registration.addUrlPatterns("/cue-categories");
return registration;
}
}
Run Code Online (Sandbox Code Playgroud) 我使用r.js优化器根据构建配置文件组合js文件,如文档中所建议的那样.这是我的build-config.js:
({
baseUrl: ".",
paths: {
jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
},
name: "main",
out: "main-built.2013-07-30.js"
})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它基于main.js文件,这里是它的代码:
requirejs.config({
baseUrl: 'scripts',
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
jquery: [
'//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
'lib/jquery-1.9.1.min',
],
},
});
require([
'layout',
'cue',
], function() {
});
Run Code Online (Sandbox Code Playgroud)
如果我保留urlArgs: "bust=" + (new Date()).getTime()在main.js中的所有外部文件(这里是从CDN加载的jquery)看起来像.../jquery.js?bust=1377412213
因此,每当我进行构建时,PITA都会注释掉这一行.我已经阅读了所有文档并搜索了解决方案,但一切都是徒劳的.也许我做错了?
我使用定制的路线,其中包括命名空间除了控制器和行动.因此,对于ACL目的,我使用MVC路由名称作为ACL资源名称.现在我需要获取当前的DISPATCHING路由名称.我提出的唯一解决方案是从Dispatcher 获取名称空间/控制器/操作,并迭代所有路由找到合适的路由器.
有没有最简单的方法来获取当前调度(不仅仅匹配)的路由名称?