赞
踩
利用springboot+gradle搭建多模块项目,主要参考博客:https://www.cnblogs.com/dauber/p/9466374.html
其中遇到的问题如下:
1. 最外层的setting.gradle中include所有模块之后,需要将右侧gradle窗口中多余的根删除掉,不然会有报错导致项目无法运行
2. 多个平级模块之间相互引用,旁边的小伙伴不需要,但是我这里需要现在对应子模块中加上
includeFlat 'projectName'
然后在build.gradle中加上
compile project (':projectName')
才可以成功引用
3. 启动Application类的时候出现了找不到或无法加载的主类 类似的错误提示,没有其他错误信息,错误信息需要在下方的build窗口查看,可能是其中一个模块构建失败导致的,需要一一找出原因并解决。
4. 启动Application在一个模块中,需要扫描的在其他模块中,需要在@SpringbootApplication注解中加上扫描的包名,同时需要在setting.gradle和build.gradle中引用这些包,否则还是扫描不到。
SpringBoot默认包扫描机制是:从启动类所在包开始,扫描当前包及其子包下的所有文件。
5. 构建都成功,且都引用了其他平级模块,但是仍然无法注入对应的component,这时可能需要考虑在被引用的模块的build.gradle加上:
jar.enabled=true
6. 在构建拦截器过程中需要注入其他的组件,但是注入失败,调试发现是null,可以参考:
https://www.cnblogs.com/niceboat/p/6958895.html
- // 代码来自于 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中的,不然还会继续报错,开始因为忘记修改这里又浪费了一些时间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。