問題の説明
Maven
マルチモジュール開発を使用する場合、モジュール A はモジュール B をインポートしますが@Service
、@Mapper
、@Compoment
、@Configuration
などによってモジュール B に注入することはできません。コンテナーにクラスを配置できるアノテーションを考える限りSpring
、モジュール A に注入することはできません。
親プロジェクト
<modules>
<module>blog</module>
<module>admin</module>
<module>framework</module>
</modules>
ディレクトリ構造
Blog
モジュール インポートframework
モジュール
<dependencies>
<dependency>
<groupId>com.hsqyz</groupId>
<artifactId>framework</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
しかし、Blog プロジェクトを開始した後、フレームワーク モジュールの Bean をスキャンできません...
ソリューション 1
2 つのモジュールのスタートアップ クラス パッケージ パスが一致していることを確認します。
ブログ モジュール パッケージ パス:com.hsqyz
フレームワーク モジュール パッケージ パス:com.hsqyz
ソリューション 2
@SpringBootApplication
属性を使用してscanBasePackages
、パッケージのスキャン パスを指定します
@SpringBootApplication(scanBasePackages = {
"com.hsqyz.blog","com.hsqyz.framework"})
または、属性を使用して@ComponentScan
パッケージvalue
のスキャン パスを指定します。
@ComponentScan(value = {
"com.hsqyz.blog","com.hsqyz.framework"})