【问题标题】:Dependency Injection for Plugin Class插件类的依赖注入
【发布时间】:2021-11-23 08:15:42
【问题描述】:

我在 jar 文件中有一个类,例如

Class A {
  B b;
  C c;
//setter based injection
}

现在我想在另一个项目中创建一个 A 的 bean。但是我没有任何主类来配置 Spring 应用程序。我的 pom.xml 中有一个插件,它在我的项目中调用 D 类。 如果我使用 new 关键字创建一个 bean,jar 中的所有自动装配的 bean 都将不可用。 请提出任何方法来做到这一点。

注意:这是一个 Spring 应用程序,不是 Spring boot。

【问题讨论】:

    标签: java spring spring-framework-beans


    【解决方案1】:

    为了能够自动装配一个 bean,您需要将该 bean 注册为 Spring 管理的 bean。您可以通过多种方式做到这一点,以下是最简单的方式:

    1) @Component 注解

    如果你用@Component 注释A,Spring 将创建该类的一个实例并将其注册为 Spring 管理的 bean:

    @Component
    Class A {
      B b;
      C c;
    //setter based injection
    }
    

    2) @Bean 注解

    另一种注册 Bean 的方法是使用 Configuration 类和 @Bean 注解:

    @Configuration
    public class AppConfig {
        @Bean
        public A a() {
            return new A();
        }
    }
    

    如果我正确理解了您的用例,您将需要使用选项 2)。

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多