spring - 创建 beanfactory 对象有哪些不同的方法?

标签 spring jakarta-ee

1. BeanFactory fac=new ClassPathXmlApplicationContext("Spring-Config.xml"); 

2. Resource res=new Classpathresource("Spring-Config.xml");
    BeanFactory fac=new XmlBeanFactory(res);

(我发现第二种类型只有我可以指定一个父配置文件来使用

3. ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Config.xml");

我有3种加载beanfactory的方法,我想知道它们之间有什么区别。 如果可能的话,如何在所有这些方法中定义父配置文件?

最佳答案

ApplicationContext继承自BeanFactory接口(interface),因此它具有BeanFactory所具有的所有功能,并且还具有额外的功能,以下部分在Spring官网: MessageSource,提供对 i18n 风格的消息的访问。 访问资源,例如 URL 和文件。 事件传播到实现 ApplicationListener 接口(interface)的 bean。 加载多个(分层)上下文,允许每个上下文专注于一个特定层,例如应用程序的 Web 层。

正如你所说,有些代码使用BeanFactory,有些代码使用ApplicationContext,实际上没有什么不同,但是一件事,因为ApplicationContext的额外功能,它会更重,并且可以与事务和aop一起使用,用在容器环境中会很好,比如Tomcat等。 您可以在这里找到更多信息,尤其是第 3.8.1 节。 BeanFactory 还是 ApplicationContext?:http://static.springsource.org/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory

关于spring - 创建 beanfactory 对象有哪些不同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377371/

相关文章:

java - 与 Java 11 兼容的最低 Spring 版本

java - Spring 启动 : java. lang.AbstractMethodError : Receiver class org. springframework.jms.config.JmsListenerEndpointRegistry

Spring session 处理: HttpSessionDestroyedEvent not received

tomcat - Servlet 可以直接在 localhost 上访问,但不能在站点名称后访问

java - REST API - 客户端 session 状态与数据库 session 状态

java - 使用 Hibernate 调用 MySQL 存储过程时分页不起作用

jakarta-ee - @Singleton @Startup @PostConstruct 方法保证在 EJB 可用于客户端调用之前返回?

java - 泽西 (javax) REST MissingAnnotationException

java - 代码不会将数据插入数据库

jakarta-ee - Hello World !使用远程无状态 session Bean