【问题标题】:Application Context Null in different project and unable to access beans不同项目中的应用程序上下文空且无法访问bean
【发布时间】:2018-02-17 23:40:28
【问题描述】:

我有一个项目 (project1),其中包含使用 @component 声明的 bean,并且使用应用程序上下文我能够访问这些 bean。现在有另一个项目(spring boot project-project2),我使用这个project1作为依赖项。 我正在尝试使用自动装配注释访问 project1 的 bean,但它为 bean 和应用程序上下文抛出空指针异常。如何访问 project1 的应用程序上下文,它可以访问我的项目中的这些 bean,以便我可以使用自动装配的应用程序上下文和访问 project2 中 project1 的 bean 知道出了什么问题以及为什么自动装配不起作用。

谢谢

【问题讨论】:

  • 两个项目包是否都配置为在 project1 中扫描? (@ComponentScan)
  • @ComponentScan 是在 project1 的类上的注释。还需要在哪里声明?我需要在 project2 中使用 project1 bean
  • 那么在 project2 中的 componentscan 注解必须同时具有 project2 和 project1 基础包。就像 project2 有基础包 "a.b.c" 并且 project1 有 x.y.z project2 componentscan 注释必须是 @ComponentScan(basePackages={"a.b.c","x.y.z"})
  • 设置了这些值,但仍然无法获取 bean
  • 我需要在 post 构造方法中获取 bean。它在那里工作正常。

标签: java spring-mvc spring-boot spring-batch


【解决方案1】:

您需要将项目 1 中的配置导入项目 2。如下所示

@Configuration
@EnableBatchProcessing
@ComponentScan({"abc.","com.abc"})
@Import({Project1Config.class})
public class Project2Configuration {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多