You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot项目中可否在其他模块复用自定义WebMvcConfigurer实例

结论

完全可以将这套拦截器配置打包成公共依赖直接复用,不需要在每个业务模块单独重写逻辑,只需要做少量适配调整即可。

具体操作步骤

  • 第一步:公共模块打包准备
    确保LoggerInterceptor已经添加@Component注解被Spring托管,和InterceptorConfig一起放到公共模块的com.gem.common.interceptors包下,将公共模块打包成jar包。
  • 第二步:业务模块适配(二选一即可)
    • 方案1(简单适配):在业务模块启动类的@SpringBootApplication注解中扩展扫描范围,把公共配置所在的包加入扫描路径:
      @SpringBootApplication(scanBasePackages = {"你的业务模块根包路径", "com.gem.common.interceptors"})
      public class YourBusinessApplication {
          public static void main(String[] args) {
              SpringApplication.run(YourBusinessApplication.class, args);
          }
      }
      
    • 方案2(零侵入适配,推荐):用Spring Boot自动装配机制,不需要业务模块改启动类配置:
      1. 在公共模块的resources目录下新建层级目录META-INF/spring
      2. 新建文件org.springframework.boot.autoconfigure.AutoConfiguration.imports,在文件中写入配置类的全限定名:
        com.gem.common.interceptors.InterceptorConfig
        
      3. 业务模块引入公共依赖后会自动加载拦截器配置,无需额外修改。

注:如果使用Spring Boot 2.7以下版本,自动装配需要在公共模块resources/META-INF/spring.factories文件中添加如下配置:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.gem.common.interceptors.InterceptorConfig

可选优化

如果需要不同业务模块自定义拦截规则(比如自定义拦截路径、排除静态资源/登录接口等),可以在公共模块新增配置属性类,绑定配置文件参数,这样不同模块可以直接在application.yml中调整规则,不需要修改公共代码。


内容的提问来源于stack exchange,提问作者user4740600

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:54:06