springboot gradle 使用过程中遇到的问题小结(1)

2019-07-11 14:01:34 浏览数 (1)

其中遇到的问题如下:

1. 最外层的setting.gradle中include所有模块之后,需要将右侧gradle窗口中多余的根删除掉,不然会有报错导致项目无法运行

2. 多个平级模块之间相互引用,旁边的小伙伴不需要,但是我这里需要现在对应子模块中加上

代码语言:javascript复制
includeFlat 'projectName'

然后在build.gradle中加上

代码语言:javascript复制
compile project (':projectName')

才可以成功引用

3. 启动Application类的时候出现了找不到或无法加载的主类 类似的错误提示,没有其他错误信息,错误信息需要在下方的build窗口查看,可能是其中一个模块构建失败导致的,需要一一找出原因并解决。

4. 启动Application在一个模块中,需要扫描的在其他模块中,需要在@SpringbootApplication注解中加上扫描的包名,同时需要在setting.gradle和build.gradle中引用这些包,否则还是扫描不到。

SpringBoot默认包扫描机制是:从启动类所在包开始,扫描当前包及其子包下的所有文件。

5. 构建都成功,且都引用了其他平级模块,但是仍然无法注入对应的component,这时可能需要考虑在被引用的模块的build.gradle加上:

代码语言:javascript复制
jar.enabled=true

6. 在构建拦截器过程中需要注入其他的组件,但是注入失败,调试发现是null,可以参考:

https://www.cnblogs.com/niceboat/p/6958895.html

代码语言:javascript复制
// 代码来自于 https://www.cnblogs.com/niceboat/p/6958895.html
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
  
  @Bean
  public UserInterceptor userInterceptor() {
    return new UserInterceptor();
  }
  
  @Override
  public void addInterceptors(final InterceptorRegistry registry) {
    registry.addInterceptor(userInterceptor())
        .addPathPatterns("/**")
        .excludePathPatterns("/login/**", "/logout/**", "/loginPage/**", "/error/**");
    super.addInterceptors(registry);
  }
}

需要注意的是,除了上方@Bean的位置,还需要改掉下面的addInterceptor中的,不然还会继续报错,开始因为忘记修改这里又浪费了一些时间。

0 人点赞