Spring学习2—Spring容器
来源:互联网 发布:c语言中字符串数组 编辑:程序博客网 时间:2024/06/06 08:30
一、Spring容器接口关系
容器是Spring框架的核心,Spring容器就是一个巨大的工厂。Spring容器使用Ioc(控制反转(Inversion of Control )管理所有组成应用系统的组件。
Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例。
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。它们都可以代表Spring容器。Spring容器是生成Bean实例的工厂,并管理容器中的Bean。Bean是Spring管理的基本单元。
创建BeanFactory实例时,必须使用Spring容器管理的Bean详细配置信息(XML配置文件)。XML配置文件通常使用Resource对象传入。
Resource接口是Spring提供的资源访问接口,通过使用该接口,Spring能以简单,透明的方式访问子盘,类路径,已经网络上的资源。
--------------------------------------------------------------------------------------------------------------------------
二、Spring容器加载 spring的配置文件方式
A、大部分Java EE应用,在启动Web应用时自动加载Application实例。对于独立的应用程序,可通过如下方法来实例化BeanFactory。
1.
//搜索当前文件路径下的beans.xml文件,创建Resource对象
InputStreamResource isr = new FileSystemResource("beans.xml");
//以Resource对象作为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(isr);
2.
//搜索类加载路径,以类加载路径下的beans.xml文件创建Resource对象
ClassPathResource res = new ClassPathResource("beans.xml");
//以Resource对象为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(res);
-----------------------------------------------------------
B、 ApplicationContext允许以声明式方式操作容器,无需手动创建它。可利用如ContextLoader得支持类,在Web应用启动时自动创建ApplicationContext。当然,也可以采用编程方式创建ApplicationContext.
除了提供BeanFactory所支持的全部功能外,ApplicationContext还有如下额外功能:
1.ApplicationContext继承MessageSource接口,因此提供国际化支持。
2.资源访问,比如URL和文件
3.事件机制
4.载入多个配置文件。
ApplicationContext经常用到的三个实现:
1.ClassPathXmlApplicationContext :从类路径中的XML文件载入上下文定义信息。把上下文定义文件当成类路径资源。
2.FileSystemXmlApplicationContext :从文件系统中的XML文件载入上下文定义信息。
3.XmlWebApplicationContext :从Web系统中的XML文件载入上下文定义信息。
实例化Spring容器常用的两种方式:
方法一:
在类路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
方法二:
在文件系统路径下寻找配置文件来实例化容器
ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{“d:\\beans.xml“});
然后:
OrderService service = ( OrderService)ctx.getBean("personService");
getBean()方法的参数可以指定id属性,也可以指定name属性。
id通常为有效的标识符(即以字母或下划线开头后面跟着字母数字或下划线)。 如:id="personServiceBean"
name可以为非标识符。 如:name="person.server#bean“
无论按照id属性还是name属性找到即可
Spring的配置文件可以指定多个,可以通过String数组传入。
--------------------------------------------------------------------------------------------------------------------------
注意:默认情况下会在容器启动时初始化bean,且只实例化一次即单例模式,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean时才初始化bean。如:
<bean id="xxx" class="cn.itcast.OrderServiceBean"
lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:
<beans default-lazy-init="true“ ...>
如果想每次从容器获取bean都是新的对象,可设置:
Resource接口是Spring提供的资源访问接口,通过使用该接口,Spring能以简单,透明的方式访问子盘,类路径,已经网络上的资源。
--------------------------------------------------------------------------------------------------------------------------
二、Spring容器加载
1.
2.
-----------------------------------------------------------
除了提供BeanFactory所支持的全部功能外,ApplicationContext还有如下额外功能:
1.ApplicationContext继承MessageSource接口,因此提供国际化支持。
2.资源访问,比如URL和文件
3.事件机制
4.载入多个配置文件。
1.ClassPathXmlApplicationC
2.FileSystemXmlApplication
3.XmlWebApplicationContext
方法一:
在类路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationC
方法二:
在文件系统路径下寻找配置文件来实例化容器
ApplicationContext ctx = new FileSystemXmlApplication
然后:
id通常为有效的标识符(即以字母或下划线开头后面跟着字母数字或下划线)。
name可以为非标识符。 如:name="person.server#bean“
无论按照id属性还是name属性找到即可
Spring的配置文件可以指定多个,可以通过String数组传入。
--------------------------------------------------------------------------------------------------------------------------
注意:默认情况下会在容器启动时初始化bean,且只实例化一次即单例模式,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean时才初始化bean。如:
lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:
如果想每次从容器获取bean都是新的对象,可设置:
http://blog.sina.com.cn/s/blog_7ffb8dd5010147z4.html
0 0
- Spring学习2—Spring容器
- Spring学习2—Spring容器
- Spring学习1——Spring容器
- Spring 学习 二(Spring 容器)
- Spring学习系列:Spring容器
- Spring学习笔记-Spring容器
- Spring学习-IOC容器
- 2、spring入门—Spring IOC容器
- Spring 学习笔记2—— IoC容器
- Spring 框架学习 —— 容器
- spring学习之IOC容器2
- spring 源码学习-容器初始化-2
- Spring学习笔记——Spring IOC容器
- Spring学习(2)——容器简介与Spring结构
- Beginning Spring学习笔记——第2章(一)Spring IoC容器
- Spring学习总结(二)Spring容器
- spring学习笔记:Spring IOC容器
- Spring学习笔记-Spring容器中的Bean
- wordpress随机文章调用代码
- Exercise:Convolution and Pooling 代码示例
- 【Java笔记】Java形参长度可变方法
- mongodb的serverstatus
- 搭建sqoop的eclipse调试环境
- Spring学习2—Spring容器
- linux : VNC使用命令 以及 复制VNC里面的内容到windows本地
- Tomcat 系统架构与设计模式 第 1 部分: 工作原理
- 如何在MacBook Pro Retina上安装Linux
- Linux 安装mysql
- ListView数据异步加载图片和使用AsyncTask优化
- Android 常用权限
- 应用架构设计“防火”经验分享
- 使用hibernate tools插件生成POJO