java - 如何在 bean 定义方法中获取 spring bean

标签 java spring javabeans

我有一个 Java 配置,其中 ServiceB 依赖于 ServiceA:

@Bean
ServiceA getServiceA() { return new ServiceA(); }
@Bean
ServiceB getServiceB() { return new ServiceB(getServiceA()); }

然后我想将 ServiceA(但没有 ServiceB)声明为一个组件。我将 @ScanPackage 添加到配置中并注释 ServiceA:

@Component
class ServiceA { .. }

现在如何声明方法getServiceB()

最佳答案

Spring 为 Bean 定义方法按类型自动注入(inject)方法参数:

@Bean
ServiceB getServiceB(ServiceA serviceA) {
    return new ServiceB(serviceA);
}

现在您不必担心 ServiceA 是如何提供的。

关于java - 如何在 bean 定义方法中获取 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42132253/

相关文章:

java - 在 Hibernate 中从数据库加载属性?

java - 组合情况下的对象生命周期和 GC

java - 如何在 spring webapp 中初始化 Velocity DateTool?

java - 在 Swing 中创建用于表单输入的 Java GUI

Spring Boot 3 和 JSF 与 Jakarta 无法正常工作

java - 正确使用java Commons BeanUtils?

Spring:Bean属性不可写或具有无效的setter方法

java - xml 中的 apache Camel 过滤器。在xml中将参数传递给Bean

java - Hibernate在JOINED继承中将对象从父类升级到子类

java - 如何从 session 访问 JavaBean 数组