网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 820|回复: 0
打印 上一主题 下一主题

【Spring+ MyBatis】1-3Spring的核心容器

[复制链接]

418

主题

419

帖子

1710

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1710
跳转到指定楼层
楼主
发表于 2021-2-27 00:41:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
spring的核心容器

1、BeanFactory
简单来说,BeanFactory就是一个管理Bean的工厂,主要负责初始化各种Bean,并调用它们的生命周期方法.
创建BeanFactory实例时,需要提供Spring管理的详细配置信息,这些信息采用XML文件形式来管理,加载配置信息的语法如下:
BeanFactory beanFactory=new XmlBeanFactory(new fileSystemResource("F:/applicationContext.xml"))
   
2.ApplicationContext
   ApplicationContext是BeanFactory的子接口,也被称为应用上下文,不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面
  的支持。
创建ApplicationContext接口实例,通常采用两种方法
1)通过ClassPathXmlApplicationContext创建
   ApplicationContext applicationContext=new ClassPathXmlApplicationContext(String configLocation);
   configLocation参数用于指定Spring配置文件的名称和位置
2)通过FileSystemXmlApplicationContext创建
  ApplicationContext applicationContext=new FileSystemXmlApplicationContext(String configLocation);
  与ClassPathXmlApplicationContext不同的是,在读取spring的配置文件时,FileSystemXmlApplicationContext不再从类路径中读取配置文件,而是通过参数  
  指定配置文件的位置,例如F:/workspace/applicationContext.xml

web服务器实例化ApplicationContext容器时,通常会使用基于ContextLoaderListener实现的方式,此种方式只需要在web.xml中添加如下代码:
<!--指定spring配置文件的位置,多个配置文件时,以逗号分开-->
<context-param>
<param-name>contextConfigLocation</param-name>
<!--spring将加载spring目录下的applicationContext.xml文件-->
<param-value>
classpath:spring/applicationContext.xml
</param-value>
</context-param>
<!--指定以ContextLoaderListener方式启动spring容器-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

两者区别如下:
相同点:都是通过xml配置文件加载Bean的
不同点:如果Bean的某一个属性没有注入,使用BeanFactory加载后,在第一次调用getBean()方法时会抛出异常,而ApplicationContext则在初始化时自检,这样有利于检查所依赖的属性是否注入.


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 23:07 , Processed in 0.032210 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表