gpt4 book ai didi

java - 为什么一个类需要访问 Spring 上下文?

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:48 25 4
gpt4 key购买 nike

我看到 Spring bean 和其他常规类都可以访问 spring 应用程序上下文。

我想知道为什么一个类必须处理 Spring 上下文。我的理解是,在 main 方法中,您引导您的应用程序,从那一点开始的所有内容都由 Spring 连接。

如果是这样,main 方法应该是唯一需要 ApplicationContext 的地方。您需要 Spring 上下文来完成工作的其他真实案例有哪些?

最佳答案

通常bean不需要访问ApplicationContext直接。

但是,有些情况下需要直接访问。例如:

  • 在运行时访问由其名称标识的 bean:

    class MyClass implements ApplicationContextAware {
    ...
    public void execute(String actionName) {
    Action action = applicationContext.getBean(actionName);
    action.execute();
    }
    ...
    }
  • 将自定义参数传递给 prototype 的构造函数- 运行时范围内的 bean:

    Bean bean = applicationContext.getBean("myBean", "foo", "bar");

    请注意,如果 Bean的构造函数不需要在运行时传递自定义参数,您可以注入(inject) ObjectFactory<Bean>相反。

  • 使用 AutowireCapableBeanFactory 触发第三方对象的 Autowiring .

关于java - 为什么一个类需要访问 Spring 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com