Spring中BeanFactory和ApplicationContext的作用和区别(推荐)

作用:

1.BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。2.ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能:
a. 国际化支持
b. 资源访问:Resource rs = ctx. getResource(”classpath:config.properties”), “file:c:/config.properties”
c. 事件传递:通过实现ApplicationContextAware接口

3.常用的获取ApplicationContext的方法:
FileSystemXmlApplicationContext:从文件系统或者url指定的xml配置文件创建,参数为配置文件名或文件名数组
ClassPathXmlApplicationContext:从classpath的xml配置文件创建,可以从jar包中读取配置文件
WebApplicationContextUtils:从web应用的根目录读取配置文件,需要先在web.xml中配置,可以配置监听器或者servlet来实现

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

这两种方式都默认配置文件为web-inf/applicationContext.xml,也可使用context-param指定配置文件

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param>

总结

到此这篇关于Spring中BeanFactory和ApplicationContext的作用和区别的文章就介绍到这了,更多相关Spring中BeanFactory和ApplicationContext内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Spring通过ApplicationContext主动获取bean的方法讲解

    问题1: 有个异步线程Runnable里面需要用到dao,无法通过AutoWired和compoment注解传递进来. 于是希望通过Spring context主动去获取bean. 问题2: getBean(name)获取失败. 解决: 默认的dao的name=类名(首字母小写) 例如: 接口名称:TemplateDao 则getName("templateDao")即可 通用的SpringContextUtil获取Bean 1.实现ApplicationContextAware接口

  • spring中通过ApplicationContext getBean获取注入对象的方法实例

    用SpringContextUtil实现ApplicationContextAware package util; import java.util.Locale; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; pub

  • 详解spring applicationContext.xml 配置文件

    applicationContext.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http

  • Spring中BeanFactory与FactoryBean接口的区别详解

    前言 Spring框架中的BeanFactory接口和FactoryBean接口因为名称相似,老是容易搞混淆,而且也是面试过程中经常会碰到的一个问题.所以本文就专门给大家整理出来. 一.BeanFactory接口 BeanFactory接口是Spring容器的核心接口,负责:实例化.定位.配置应用程序中的对象及建立这些对象间的依赖. Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是常用的一个,该实现将以XML方式描述组成应用的对象及对象间的依赖关系.

  • Spring中BeanFactory解析bean详解

    在该文中来讲讲Spring框架中BeanFactory解析bean的过程,该文之前在小编原文中有发表过,先来看一个在Spring中一个基本的bean定义与使用. package bean; public class TestBean { private String beanName = "beanName"; public String getBeanName() { return beanName; } public void setBeanName(String beanName

  • Spring中BeanFactory和ApplicationContext的作用和区别(推荐)

    作用: 1.BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期.2.ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能: a. 国际化支持 b. 资源访问:Resource rs = ctx. getResource("classpath:config.properties"), "file:c:/config.properties&qu

  • Spring中SmartLifecycle和Lifecycle的作用和区别

    本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如何控制SmartLifecycle的优先级. 并讲解SpringBoot中如何通过SmartLifecycle来启动/停止web容器. SmartLifecycle和Lifecycle作用 都是让开发者可以在所有的bean都创建完成(getBean) 之后执行自己的初始化工作,或者在退出时执行资源销毁工作. SmartLifecycle和Lifecycle区别 1.

  • 简单了解Spring中BeanFactory与FactoryBean的区别

    这篇文章主要介绍了简单了解Spring中BeanFactory与FactoryBean的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在Spring中有BeanFactory和FactoryBean这2个接口,从名字来看很相似,比较容易搞混. 一.BeanFactory BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean().containsBean()等管理Be

  • 基于Spring中各个jar包的作用及依赖(详解)

    先附spring各版本jar包下载链接http://repo.spring.io/release/org/springframework/spring/ spring.jar 是包含有完整发布模块的单个jar 包.但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar 示例图片为Spring-2.5.6.jar的包目录 下面讲解各个jar包的作用: 1.org.springframework.aop或sp

  • Python中print和return的作用及区别解析

    print只是为了向用户显示一个字符串,表示计算机内部正在发生的事情.计算机却无法使用该print出现的内容. return是函数的返回值.该值通常是人类用户看不到的,但是计算机可以在其他功能中使用它. print不会以任何方式影响函数.它只是为了帮助人类使用函数.它对于理解程序如何工作非常有用,并且可以在调试中用于检查程序中的各种值而不会中断程序.除了帮助人类看到人们想要看到的结果,print其余的事情都不做. return是函数返回值的主要方式.所有函数都将返回一个值,如果没有return语

  • Python中staticmethod和classmethod的作用与区别

    一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁. 既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢 从它们的使用上来看 @staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样. @clas

  • Spring中ThreadLocal的解析

    目录 1.ThreadLocal的接口方法 2.TheadLocal实例 3.Thread同步机制的比较(总结) 4.Spring使用ThreadLocal解决线程安全问题 我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度.这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突. 我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源.但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享.虽

  • 详解Spring中使用@within与@target的区别

    项目里用到@within时,出现了一些问题,使用@target就可以解决,但又会出现一些新的问题,因此本文探讨了在spring中,使用@within和@target的一些区别. 背景 项目里有一个动态切换数据源的功能,我们是用切面来实现的,是基于注解来实现的,但是父类的方法是可以切换数据源的,如果有一个类直接继承这个类,调用这个子类时,这个子类是不能够切换数据源的,除非这个子类重写父类的方法. 模拟项目例子 注解定义: @Target({ElementType.METHOD, ElementTy

随机推荐