spring - 如何使用注解进行 Spring Lookup 方法注入(inject)?

标签 spring dependency-injection spring-annotations

有没有办法通过注解来使用查找方法注入(inject)?

给定以下类:

@Service
public abstract class A {


    protected abstract createB();

}

为了让它工作,我必须在 spring applicationContext.xml 中声明以下内容:

<bean id="b" class="com.xyz.B">
</bean>

<bean id="a" class="com.xyz.A">
    <lookup-method name="createB" bean="b"/>
</bean>

虽然我使用的是 <context:component-scan base>我还必须在 XML 中声明它。我认为这不是一个好方法。

注解怎么做?

最佳答案

可以使用javax.inject.Provider。感谢 Phil Webb .

public class MySingleton {

  @Autowired
  private Provider<MyPrototype> myPrototype;

  public void operation() {
    MyPrototype instance = myPrototype.get();
    // do something with the instance
  }

}

关于spring - 如何使用注解进行 Spring Lookup 方法注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891997/

相关文章:

symfony - 我可以在编译器阶段访问语义配置吗?

c# - 使用 ASP.NET Core MVC 2.0 在中间件中获取 UrlHelper

java - 如何为 Spring Boot 请求参数中使用的类中的字段值设置默认值

java - VSCode、Gradle、Spring Boot,无法导入 javax.validation

java - 使用 Spring WebSocket 的 SimpMessagingTemplate 进行多端点配置

java - 使用 Spring Projection Interface 的 native 查询来选择字段

java - Dagger 2 组件依赖

java - 如果我在配置类上使用 @ActiveProfiles 注释而不是在定义我的 bean 的类上使用它,在 Spring 中会发生什么?

java - 如何使用 Restful api 在 spring 中自动修剪 bean 对象的字符串?

java - 无法链接 CSS 和图像