- 浏览: 279737 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (133)
- GWT (7)
- IT生活 (9)
- JAVA综合 (38)
- Servlet (5)
- vaadin (2)
- About Eclipse (2)
- StarUML (1)
- Spring (7)
- ibatis (3)
- web (35)
- ExtJs (2)
- Quartz (13)
- Struts (1)
- 学习XML (6)
- io流 (2)
- web应用之压缩 (3)
- Spring MVC (0)
- Velocity (5)
- 静态代码分析工具 (2)
- 观点 (1)
- JUnit (3)
- jQuery (4)
- mysql (2)
- javascript (16)
- linux (4)
- pattern (1)
- java加密技术 (2)
最新评论
-
tan4836128:
确实不行,我的1.8.5,降到1.6.2也不行,楼主的情况很局 ...
Spring调用Quartz定时任务报Couldn't store trigger异常 -
alfusen_xiong:
有没有自动注入的方法可以取代executeInternal() ...
Quartz任务中调用Spring容器中bean及动态调度任务 -
luoxiang183:
换了也不行啊
Spring调用Quartz定时任务报Couldn't store trigger异常 -
liubey:
首先谢谢LZ的文章,其实我想问个问题,既然有心做成工具类,就最 ...
对象和map转换 -
小林夕:
几年前用还行,现在做UML一般都开始使用在线作图工具了,可以了 ...
StarUML简介
我们在使用ssh整合项目的时候,Spring在其中是一个非常重要的框架,它在其中可以说是一个最核心的框架,提到spring我们不得不提它的IOC容器的功能了!它是一个大工厂,可以在其中产生和管理很多的bean,下面,请随阿堂一起来好好看看spring的容器功能方面的介绍,这对于我们在解决ssh框架整合中的问题,进行测试时是非常有用的!
1.spring容器
Spring有两个核心接口BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口,它们代表了Spring容器,Spring容器是产生Bean的工厂,用于管理容器中的Bean。Bean是Spring管理的基本单位,在spring的J2EE应用中,所有的组件都是Bean。Bean包括数据源、Hibernate的SessionFactory、事务管理器等。
应用中的所有组件,都处于spring的管理下,都被spring以Bean的方式管理,spring负责创建Bean实例,并管理其生命周期。Spring里的Bean是非常广义的概念,任何Java对象和Java组件都被当成Bean处理,甚至这些组件,并不是标准的JAVABEAN。
Bean在spring容器中运行,无须感受Spring容器的存在,一样可以接受spring的信赖注入,包括Bean属性的注入、合作者的注入、信赖关系的注入等。
spring容器负责创建Bean实例,所以需要知道每个Bean的实现类,JAVA程序的实现面向接口编程,无须关心Bean实例的实现。但Spring容器必须能精确知道每个Bean的实现类,因此Spring配置文件必须精确配置Bean的实现类。
Spring容器最基本的接口就是BeanFactory. BeanFactory负责配置、创建、管理Bean,它有一个子接口ApplicationContext,因此也称为Spring上下文。Spring容器负责管理Bean与Bean之间的信赖关系。
BeanFactory接口包含如下基本的方法:
public boolean containsBean(String name),判断Spring容器是否包含id为name的Bean定义
public Object getBean(String name)返回容器id为name的bean
public Object getBean(String name,Class requiredType)返回容器中id为name,并且类型为requiredType的Bean
public Class getType(String name)返回容器中id为name的Bean的类型
调用者只需使用getBean方法即可获得指定Bean的引用,无须关心Bean的实例化过程,即Bean实例的创建过程完全透明。
BeanFactory有很多实现类,通常使用org.springframework.beans.factory.xml.XmlBeanFactory类。但对于大部分J2EE应用而言,推荐使用ApplicationContext. ApplicationContext是BeanFactory的子接口,其常用实现类是
org.springframework.context.support.FileSystemXmlApplicationContext和
org.springframework.context.support.ClassXmlAplicationContext.
创建 BeanFactory实例时,必须提供Spring容器管理的Bean的详细配置信息。 Springr的配置信息通常采用XML配置文件来设置,因此,创建BeanFactory实例时,应该提供XML配置文件作为参数。 XML配置文件通常使用Resource对象传入
Resource接口用于访问配置文件资源
大部分j2ee应用,可在启动web应用时自动加载ApplicationContext实例,接受Spring管理的Bean无须知道ApplicationContext的存在,一样可以利用ApplicationContext的管理。
对于独立的应用程序,也可以通过如下方法来实例化BeanFactory
//搜索当前文件路径下的beans.xml文件创建Resource对象
InputStreamResource isr=new FileSystemResource(is);
//以Resource对象作为参数,创建BeanFactory的实例
XmlBeanFactory factory=new XmlBeanFactory(isr);
或者采用如下方法
//搜索CLASSPATH路径,以CLASSPATH路径下的beans.xml文件创建Resource对象
ClassPathResource res=new ClassPathResource("beans.xml");
//以Resource 对象作为参数,创建BeanFactory实例
XmlBeanFactory factory=new XmlBeanFactory(res);
如果应用里有多个属性配置文件,则应该采用BeanFactory的子接口ApplicationContext来创建BeanFactory的实例,ApplicationContext通常采用如下两个实现类。
FileSystemXmlApplicationContext ,以指定路径的XML配置文件创建ApplicationContext
ClassPathXmlApplicationContext,以CLASSPATH路径下的XML配置文件创建ApplicationContext
如果需要同时加载多个XML配置文件,可以采用如下方式
//搜索CLASSPATH路径,以CLASSPATH路径下的applicationContext.xml 和 service.xml文件创建ApplicationContext
ClassPathXmlApplicationContext appContext=new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml","service.xml"});
//事实上,ApplicationContext是BeanFactory的子接口,支持强制类型转换
BeanFactory factory=(BeanFactory) appContext;
当然,也可以支持从指定的路径来搜索特定文件加载:
//以指定路径下的applicationContext.xml和service.xml文件创建 Applicationcontext
FileSystemXmlAplicationContext appContext=new
FileSystemXmlApolicationContext(
new String[] {"applicationContext.xml","service.xml"}
)
//事实上,ApplicationContext是BeanFactory的子接口,支持强制类型转换
BeanFactory factory=(BeanFactory) appContext;
2.使用ApplicationContext
很多时候,并不是直接使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例。因此,有时候也称Spring容器为Spring上下文。 ApplicationContext是BeanFactory接口的子接口,它增强了BeanFactory的功能。
ApplicationContext允许以声明方式操作容器,无须手动创建它。可利用如ContextLoader的支持类,在web应用启动自动创建ApplicationContext。当然,也可以采用编程方式创建ApplicationContext
ApplicationContext继承MessageSource接口,因此提供国际化支持资源访问,比如 URL和文件
事件传递
载入多个配置文件
ApplicationContext包括 BeanFactory的全部功能,因此建议优先使用ApplicationContext ,除了对于某些内存非常关键的作用,才考虑使用BeanFactory
1.spring容器
Spring有两个核心接口BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口,它们代表了Spring容器,Spring容器是产生Bean的工厂,用于管理容器中的Bean。Bean是Spring管理的基本单位,在spring的J2EE应用中,所有的组件都是Bean。Bean包括数据源、Hibernate的SessionFactory、事务管理器等。
应用中的所有组件,都处于spring的管理下,都被spring以Bean的方式管理,spring负责创建Bean实例,并管理其生命周期。Spring里的Bean是非常广义的概念,任何Java对象和Java组件都被当成Bean处理,甚至这些组件,并不是标准的JAVABEAN。
Bean在spring容器中运行,无须感受Spring容器的存在,一样可以接受spring的信赖注入,包括Bean属性的注入、合作者的注入、信赖关系的注入等。
spring容器负责创建Bean实例,所以需要知道每个Bean的实现类,JAVA程序的实现面向接口编程,无须关心Bean实例的实现。但Spring容器必须能精确知道每个Bean的实现类,因此Spring配置文件必须精确配置Bean的实现类。
Spring容器最基本的接口就是BeanFactory. BeanFactory负责配置、创建、管理Bean,它有一个子接口ApplicationContext,因此也称为Spring上下文。Spring容器负责管理Bean与Bean之间的信赖关系。
BeanFactory接口包含如下基本的方法:
public boolean containsBean(String name),判断Spring容器是否包含id为name的Bean定义
public Object getBean(String name)返回容器id为name的bean
public Object getBean(String name,Class requiredType)返回容器中id为name,并且类型为requiredType的Bean
public Class getType(String name)返回容器中id为name的Bean的类型
调用者只需使用getBean方法即可获得指定Bean的引用,无须关心Bean的实例化过程,即Bean实例的创建过程完全透明。
BeanFactory有很多实现类,通常使用org.springframework.beans.factory.xml.XmlBeanFactory类。但对于大部分J2EE应用而言,推荐使用ApplicationContext. ApplicationContext是BeanFactory的子接口,其常用实现类是
org.springframework.context.support.FileSystemXmlApplicationContext和
org.springframework.context.support.ClassXmlAplicationContext.
创建 BeanFactory实例时,必须提供Spring容器管理的Bean的详细配置信息。 Springr的配置信息通常采用XML配置文件来设置,因此,创建BeanFactory实例时,应该提供XML配置文件作为参数。 XML配置文件通常使用Resource对象传入
Resource接口用于访问配置文件资源
大部分j2ee应用,可在启动web应用时自动加载ApplicationContext实例,接受Spring管理的Bean无须知道ApplicationContext的存在,一样可以利用ApplicationContext的管理。
对于独立的应用程序,也可以通过如下方法来实例化BeanFactory
//搜索当前文件路径下的beans.xml文件创建Resource对象
InputStreamResource isr=new FileSystemResource(is);
//以Resource对象作为参数,创建BeanFactory的实例
XmlBeanFactory factory=new XmlBeanFactory(isr);
或者采用如下方法
//搜索CLASSPATH路径,以CLASSPATH路径下的beans.xml文件创建Resource对象
ClassPathResource res=new ClassPathResource("beans.xml");
//以Resource 对象作为参数,创建BeanFactory实例
XmlBeanFactory factory=new XmlBeanFactory(res);
如果应用里有多个属性配置文件,则应该采用BeanFactory的子接口ApplicationContext来创建BeanFactory的实例,ApplicationContext通常采用如下两个实现类。
FileSystemXmlApplicationContext ,以指定路径的XML配置文件创建ApplicationContext
ClassPathXmlApplicationContext,以CLASSPATH路径下的XML配置文件创建ApplicationContext
如果需要同时加载多个XML配置文件,可以采用如下方式
//搜索CLASSPATH路径,以CLASSPATH路径下的applicationContext.xml 和 service.xml文件创建ApplicationContext
ClassPathXmlApplicationContext appContext=new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml","service.xml"});
//事实上,ApplicationContext是BeanFactory的子接口,支持强制类型转换
BeanFactory factory=(BeanFactory) appContext;
当然,也可以支持从指定的路径来搜索特定文件加载:
//以指定路径下的applicationContext.xml和service.xml文件创建 Applicationcontext
FileSystemXmlAplicationContext appContext=new
FileSystemXmlApolicationContext(
new String[] {"applicationContext.xml","service.xml"}
)
//事实上,ApplicationContext是BeanFactory的子接口,支持强制类型转换
BeanFactory factory=(BeanFactory) appContext;
2.使用ApplicationContext
很多时候,并不是直接使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例。因此,有时候也称Spring容器为Spring上下文。 ApplicationContext是BeanFactory接口的子接口,它增强了BeanFactory的功能。
ApplicationContext允许以声明方式操作容器,无须手动创建它。可利用如ContextLoader的支持类,在web应用启动自动创建ApplicationContext。当然,也可以采用编程方式创建ApplicationContext
ApplicationContext继承MessageSource接口,因此提供国际化支持资源访问,比如 URL和文件
事件传递
载入多个配置文件
ApplicationContext包括 BeanFactory的全部功能,因此建议优先使用ApplicationContext ,除了对于某些内存非常关键的作用,才考虑使用BeanFactory
发表评论
-
Spring调用Quartz定时任务报Couldn't store trigger异常
2011-12-21 16:10 19020Quartz定时任务配置如下: <bean id=&q ... -
mysql中varchar类型转换Integer
2011-11-24 15:22 1274CAST(varchar字段 AS SIGNED) -
java 添加和清除cookie
2011-10-24 09:38 2093//添加cookie Cookie cookie = new ... -
java cookie操作
2011-10-24 09:34 1487Cookie概念: Cookie的格式实际上是一段纯文 ... -
java保留两位小数点(转)
2011-10-19 15:48 5725java保留两位小数问题: 方式一: 四舍五入 dou ... -
ibatis中批量删除
2011-09-15 10:27 1708Ibatis中批量删除方法: 方法一: 在映射文件中,按如 ... -
Java反射getFields()和getDeclaredFields()的区别
2011-09-05 13:23 1649Java反射 getFields()和getDeclaredF ... -
AES加密算法原理
2011-09-01 15:18 1747AES加密算法原理 随 ... -
Java AES加密实例
2011-09-01 14:30 3458package com.encrypt.hello; i ... -
Quartz任务中调用Spring容器中bean及动态调度任务
2011-08-31 15:09 19824Quartz 是开源任务调度框 ... -
使用OpenSymphony Quartz 调度器
2011-08-26 13:25 332623.2. 使用OpenSymphony Quartz 调度器 ... -
Observer模式
2011-08-23 09:46 1039Java深入到一定程度,就不可避免的碰到设计模式(design ... -
Java环境下Memcached应用详解(转)
2011-08-22 10:05 0本文将对在Java环境下Memcached应用进行详细介绍。M ... -
Spring DI(依赖注入) IOC(控制反转) AOP(面向切面编程)
2011-08-22 09:43 2130spring 的优点? 1.降低了 ... -
11款用于优化、分析源代码的Java工具
2011-08-08 15:13 898本文将提供一些工具, ... -
Java编程中影响性能的一些特点
2011-08-08 15:04 777文中将提供一些在Java编程中影响性能的一些特点,为了能够提高 ... -
Velocity基础
2011-08-08 11:01 1809Velocity 基础 Velocity是一个基于java的 ... -
java io经典例子
2011-08-03 14:45 1162IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入 ... -
JUnit4详细教程
2011-08-02 15:36 1235因jdk5中的新特性,JUn ... -
JUnit4注解
2011-08-02 15:31 1024JUnit4注解 JUnit4的测试类不用再继承TestCa ...
相关推荐
BeanFactoryPostProcessor接口是Spring框架提供的一个接口,用于扩展Spring容器的功能。该接口只有一个方法`postProcessBeanFactory`,该方法在容器加载完成之后被调用,可以用来改变容器中的配置或做一些初始化工作...
### 获取Spring容器的方法详解 在Java开发中,Spring框架因其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)功能而被广泛使用。掌握如何获取Spring容器对于管理和...
它包含了BeanFactory接口,它是Spring容器的基石,负责管理和实例化对象。 - **Context组件**:构建在Core组件之上,提供了更丰富的上下文环境,能够处理更复杂的对象关系和应用程序服务。ApplicationContext接口...
Bean工厂是Spring容器的基础,它负责创建、配置和管理Bean。Bean工厂通过读取XML或Java配置,实例化Bean并根据配置进行初始化。开发者可以通过实现ApplicationContext接口获取更高级别的容器,提供事件发布、资源...
主要介绍spring的IOC、AOP特性以及与其他框架的整合
"Spring Boot 容器加载完成后执行特定操作" Spring Boot 框架提供了多种方式来执行容器加载完成后的特定操作,例如使用 ApplicationListener 接口或使用 @PostConstruct 注解。在本文中,我们将介绍使用 ...
下面将详细介绍Spring技术的基本用法、核心机制、依赖注入、Spring容器和被管理的Bean等知识点。 一、Spring的基本用法 Spring容器是Spring的核心,该容器负责管理Spring中的Java组件。 Spring容器有多种实现类,...
- 编写SpringConfig,定义为@Configuration,其中包含@Bean注解的方法,如@Bean UserDAO(),用于在Spring容器中实例化bean。 - 编写测试方法,通过ApplicationContext获取Spring容器,然后获取并使用UserService...
### Spring 框架详解 #### 一、Spring 概述及特点 ##### 1.1 Spring 框架简介 - **Spring** 是一款开源的轻量级 Java 应用框架,主要用于简化企业级应用的开发过程。它提供了一个全面的编程模型,帮助开发者更加...
Spring 配置文件详解 Spring 配置文件是 Spring 框架中最重要的配置文件之一,它负责定义和配置应用程序的Bean对象,以及它们之间的依赖关系。Spring 配置文件通常以XML文件的形式存在,文件名通常为...
### Spring + Hibernate 详解与配置 #### Spring框架概述 Spring框架是一个开源的、轻量级的应用框架,旨在简化企业级应用开发。它提供了一个全面的编程模型,支持从Web到数据访问等各种应用需求。Spring的核心...
17. `@Bean`:用于标记方法,声明该方法将生成一个Bean并将其注册到Spring容器中。 以上是Spring 3.0中的一些核心注解,它们极大地提高了开发效率和代码可读性。理解并熟练使用这些注解,能让你在Spring框架的开发...
`applicationContext.xml`是Spring容器使用的主配置文件之一,用于定义Spring中的Bean以及它们之间的依赖关系。 #### 三、applicationContext.xml详解 **1. 文件结构** ```xml <!-- 头文件,定义XML版本及编码 --...
Spring IOC 容器启动流程分析 Spring IOC 容器是 Java 企业级应用程序的核心组件之一,它提供了一个统一的依赖注入机制,使得应用程序的组件之间能够松耦合。Spring IOC 容器的启动流程是整个 Spring 框架的核心...
在阅读“spring框架技术详解及使用指导”时,你可能会学到如何配置Spring IoC容器,如何使用注解进行依赖注入,如何编写AOP切面,以及如何利用Spring MVC构建RESTful Web服务。此外,书中可能还会涵盖Spring Boot的...
如果只需要使用 Spring 的 IoC/DI 容器特性,则只需引入 `spring-core.jar` 和 `spring-beans.jar`。对于那些对发布的大小有严格要求的情况,可以通过精细地挑选所需的 Jar 包来减小程序包的大小,避免包含不必要的...
Spring 框架详解与配置指南 Spring 是一个开源的 Java 应用程序框架,它以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)为核心,为开发人员提供了丰富的功能,简化了...