如何将web.xml中SassCompiler过滤器配置转为纯Spring MVC Java配置?
纯Spring MVC下替换web.xml过滤器配置的Java实现
核心思路
在纯Spring MVC项目中,我们通过实现WebApplicationInitializer接口替代传统web.xml配置,手动完成过滤器的注册与映射规则设置。
具体实现代码
创建一个实现WebApplicationInitializer的类,在onStartup方法中完成对应配置:
import com.darrinholst.sass_java.SassCompilingFilter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import org.springframework.web.WebApplicationInitializer; public class WebAppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { // 实例化Sass编译过滤器,对应web.xml中的<filter-class> SassCompilingFilter sassFilter = new SassCompilingFilter(); // 注册过滤器并设置名称,对应web.xml中的<filter-name> servletContext.addFilter("SassCompiler", sassFilter) // 配置过滤器映射规则,对应web.xml中的<url-pattern> .addMappingForUrlPatterns(null, false, "*.css"); } }
代码说明
WebApplicationInitializer是Spring提供的替代web.xml的标准接口,项目启动时会自动执行该类的onStartup方法。addFilter("SassCompiler", sassFilter):第一个参数对应原配置的<filter-name>,第二个参数是过滤器实例,对应<filter-class>。addMappingForUrlPatterns(null, false, "*.css"):最后一个参数对应原配置的<url-pattern>;前两个参数分别为调度器类型(传null表示默认所有类型)、是否匹配转发请求(false表示不匹配)。
注意事项
- 确保项目已引入
sass-java相关依赖(与原web.xml配置时的依赖一致)。 - 若使用Spring 6+(基于Jakarta EE规范),需将
javax.servlet相关包替换为jakarta.servlet。
内容的提问来源于stack exchange,提问作者Богдан Иманкулов
相关产品推荐
相关产品推荐

