当前位置: 首页 > 知识库问答 >
问题:

Spring如何从应用程序上下文获取BeanFactory

蓬化
2023-03-14

我是Spring的初学者。今天,当我在阅读Spring core文档时,我在第1.3章中发现了以下说明。Bean概述

除了包含关于如何创建特定bean的信息的bean定义外,ApplicationContext实现还允许注册(由用户)在容器外部创建的现有对象。这是通过getBeanFactory()方法访问ApplicationContext的BeanFactory来完成的,该方法返回BeanFactory DefaultListableBeanFactory实现。DefaultListableBeanFactory通过registerSingleton(..)和registerBeanDefinition(..)方法支持此注册。然而,典型的应用程序只使用通过常规bean定义元数据定义的bean。

我用下面的代码在IDEA中实例化了一个ApplicationContext对象,但是我发现这个对象没有getBeanFactory()方法:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("test.xml");

我阅读的文档是spring的5.3.5版本,我使用的是相同版本的spring

我猜如果spring更改了ApplicationContext类而忘记修改文档。或者我实例化的对象有什么问题吗?

提前感谢!

共有1个答案

穆飞星
2023-03-14

我认为您应该能够将其转换为可配置的应用程序上下文。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ConfigurableApplicationContext.html

 类似资料:
  • 问题内容: 有没有办法在Spring应用程序中静态/全局地请求ApplicationContext的副本? 假设主类启动并初始化了应用程序上下文,它是否需要通过调用堆栈将其向下传递给需要它的任何类,或者是否有一种方法可以让类要求先前创建的上下文?(我认为必须是单身人士?) 问题答案: 如果需要访问容器的对象是容器中的Bean,则只需实现BeanFactoryAware或ApplicationCon

  • 我有一个应用程序类的扩展,我需要在我创建的BroadcastReceiver中获取引用。传递到“onReceive”的上下文是受限上下文。有没有办法获得对实际应用程序上下文的引用?

  • 问题内容: 我正在开发一个SpringBoot项目,我想使用来获得其名称的bean 。我已经尝试了许多来自Web的解决方案,但未能成功。我的要求是我要有一个控制器 在控制器内部我有一个方法。我想获取注册bean的实例。我有hibernate实体,我想通过仅在方法中传递类名来获取bean的实例。 如果有人知道解决方案,请提供帮助。 问题答案: 你可以将ApplicationContext自动连接为一

  • 我正在开发一个SpringBoot项目,我希望使用按其名称获得bean。我已经尝试了许多解决方案从网上,但不能成功。我的要求是我有一个控制器 在控制器内部,我有一个方法。我想获得注册bean的实例。我有hibernate实体,我想通过只在方法中传递类的名称来获得bean的实例。

  • 我们有四个具有适当项目依赖关系的Eclipse项目:Web、Business、Common(包含域对象、DTOs、异常等)、DataAccess。 我想尽可能地使用注释,并且已经使用JDBC模板创建了一个MVC控制器、一个带有接口的新服务和一个带有接口的新dao,这一切都很好用。 现在我的问题是: 我的设置有任何意义吗? 谢谢你的洞察力。

  • 问题内容: 我正在使用Spring 3.1.1.RELEASE,JUnit 4.8.1和HSQL 2.7.7内存数据库。我有一个测试班级注释为 问题是,当我运行“ mvn clean test”时,似乎所有的测试类都在上述类失败之后运行,因为内存数据库已被破坏并且没有重新创建。我收到类似的错误 这是我设置给出异常的测试类(在上述类之后运行)的方式…… 在运行每个测试类之前,有什么方法可以将应用程序