JavaSpring配置文件无法扫描组件

ybzsozfc  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(378)

我有一个多层spring-boot架构。我的层分为api、应用程序、数据和服务。我已经在我的应用层中创建了一个配置文件,它实现了 WebMvcConfigurer 我告诉它扫描其他组件。。。我的 pom.xml 对于根项目是这样的:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.example.warehouse</groupId>
  6. <artifactId>warehouse</artifactId>
  7. <version>1.0-SNAPSHOT</version>
  8. <packaging>pom</packaging>
  9. <name>warehouse</name>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  13. <java.version>1.8</java.version>
  14. <maven.compiler.target>${java.version}</maven.compiler.target>
  15. <maven.compiler.source>${java.version}</maven.compiler.source>
  16. </properties>
  17. <modules>
  18. <module>warehouse-api</module>
  19. <module>warehouse-data</module>
  20. <module>warehouse-application</module>
  21. <module>warehouse-service</module>
  22. </modules>
  23. <build>
  24. <finalName>${project.artifactId}</finalName>
  25. </build>

以及 pom.xml 数据层文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>warehouse</artifactId>
  7. <groupId>com.example.warehouse</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <groupId>com.example.warehouse</groupId>
  11. <modelVersion>4.0.0</modelVersion>
  12. <packaging>jar</packaging>
  13. <artifactId>warehouse-data</artifactId>
  14. <name>warehouse_data</name>
  15. <properties>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  18. <java.version>1.8</java.version>
  19. <maven.compiler.target>${java.version}</maven.compiler.target>
  20. <maven.compiler.source>${java.version}</maven.compiler.source>
  21. </properties>
  22. <build>
  23. <plugins>
  24. <plugin>
  25. <groupId>org.apache.maven.plugins</groupId>
  26. <artifactId>maven-compiler-plugin</artifactId>
  27. <configuration>
  28. <source>8</source>
  29. <target>8</target>
  30. </configuration>
  31. </plugin>
  32. </plugins>
  33. </build>

问题是,我的配置文件在构建数据层包并创建jar文件时找不到它。我做错什么了吗?
我的配置文件签名和定义如下:

  1. @Configuration
  2. @ComponentScan(basePackages = {
  3. "com.example.warehouse.api",
  4. "com.example.warehouse.data",
  5. "com.example.warehouse.service",
  6. "com.example.warehouse.application"})
  7. @Import({ExceptionInfrastructureWebConfig.class})
  8. public class WarehouseConfig implements WebMvcConfigurer {}
2ic8powd

2ic8powd1#

让主方法包含 @ComponentScan 注解

  1. @SpringBootApplication
  2. @ComponentScan(basePackages = {
  3. "com.example.warehouse.api",
  4. "com.example.warehouse.data",
  5. "com.example.warehouse.service",
  6. "com.example.warehouse.application"})
  7. @Import({ExceptionInfrastructureWebConfig.class})
  8. public class MyApplication {
  9. public static void main(String[] args) {
  10. SpringApplication.run(MyApplication.class, args);
  11. }
  12. }

还有你的 WarehouseConfig 应该是这样的:

  1. @Configuration
  2. @Import({ExceptionInfrastructureWebConfig.class})
  3. public class WarehouseConfig implements WebMvcConfigurer {}
展开查看全部

相关问题