0
点赞
收藏
分享

微信扫一扫

基于python的某音乐网站热门歌曲的采集与分析,包括聚类和Lda主题分析

kolibreath 2024-12-04 阅读 12

前言

近期搭建自己的手脚架项目时,control引用其它模块中的service时,启动时启动不起来,报
Field loginService in com.*.SysLoginController required a bean of type 'com.haixin.*.SysLoginService' that could not be found.


maven多模块之间引用 启动报could not be found问题原因,解决方案,原理

1 具体问题

如图在多模块之间,
在这里插入图片描述
其中已经在admin模块的pom中正确引入了framework
在这里插入图片描述

2 问题原因

  1. 模块之间的引用问题(我遇到的不是)
    具体就是排查多模块之间的pom文件引入关系。看看是否引入了,是否循环依赖了等。
  2. 启动类位置错误
    我新建的这个项目,启动类就放在了com/haixin/initadmin路径下
    但是我的init-framework中的代码路径是com/haixin/initframework
    这就导致了引用不到问题

3 解决方案

  1. 将启动类移动到上级目录package com.haixin;
  2. (如果第一种方式场景不允许)在启动类上添加扫描路径 //@ComponentScan(basePackages = {"com.haixin.initadmin.**", "com.haixin.initframework.**", "com.haixin.initcommon.**"})

在这里插入图片描述

4 原理分析

springboot启动类扫描当前包及其子包扫描
因为最开始的启动类放在了com/haixin/initadmin路径下,那么扫描的包就是initadmin包及其子包。
其它模块的都是在com/haixin/xxx路径下,所以扫描不到。

所以可以通过移动启动类的位置到公共的包路径下。
如果场景不允许,还可以通过第二种方式,在启动类上手动添加自定义扫描的包路径

5 效果展示

在这里插入图片描述

举报

相关推荐

0 条评论