SpringBoot实践-关于Application类的位置问题

最近在练习一个新的开发工具:目前最流行的Intellij idea,在使用多module建立SpringBoot项目时遇到一个问题:编译通过,但是运行时报错找不到dao层的bean,经查是由于启动类:Application.java(指添加@SpringBootApplication注解的类)的位置放错导致的,记录如下:

        项目结构如下图:
项目结构图

        pay-dao目录结构如下图:

dao结构图

        pay-service目录结构如下图:

web结构图

        pay-web目录结构如下图:

web结构图

        启动类扫描路径如下:

1
2
3
4
5
6
7
8
9
@SpringBootApplication
@EnableAsync
@ComponentScan(basePackages = "com.doone.ah.pay")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

       启动报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
***************************
APPLICATION FAILED TO START
***************************
Description:
Field payAuthMapper in com.doone.ah.pay.service.PayAuthService required a bean of type 'com.doone.ah.pay.dao.PayAuthMapper' that could not be found.
Action:
Consider defining a bean of type 'com.doone.ah.pay.dao.PayAuthMapper' in your configuration.

说明:module的依赖关系是,pay-web依赖pay-service,pay-service依赖pay-dao,启动类Application在pay-web下的com.doone.ah.pay.web包下。

解决办法:将启动类Application的位置,由com.doone.ah.pay.web包挪到com.doone.ah.pay包下。

坚持原创技术分享,您的支持将鼓励我继续创作!
分享