- 浏览: 807361 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Spring参考手册 IOC
概述 org.springframework.beans和org.springframework.context包提供Spring框架的IOC容器的基 本功能,BeanFactory接口提供一个高级的配置机制用来管理对象,ApplicationContext接口是BeanFactory接口的子接 口,添加一些额外的功能,比如AOP特性,资源处理,事件派发和应用层特定的上下文(比如WebApplicationContext)。 BeanFactory接口是Spring IOC容器的核心接口,主要负责实例化,配置对象和组装对象依赖关系。其实质是一个工厂类,可以维护Bean及Bean之间的依赖关系。 容器中的Bean定义是由BeanDefinition类表示的。 三种实例化Bean的方式: 构造函数, 静态方法, 实例方法。 依赖注入 Spring 会在容器创建时验证Bean实例的配置,比如Bean的引用属性是否引用一个有效的Bean,但是Bean属性本身是直到Bean实例被创建时才设置的, 而除了单例对象和预实例化的对象,其他Bean是在请求时才创建的。这意味着Spring即使加载正确,也可能在请求Bean实例时抛出异常。 PropertyEditor类知道如何将属性从一种格式转换成另一种格式。 设值方法注入可以接纳重新配置和重新注入。 构造方法注入可以保证返回给客户的对象是完全初始化的,但是一旦初始化后不能重新配置和重新注入。 集合合并 Spring2.0支持集合合并,子类Bean实例可以合并和重写抽象父类Bean实例的集合属性。示例如下: xml 代码 1. <beans> 2. <bean id="parent" abstract="true" class="example.ComplexObject"> 3. <property name="adminEmails"> 4. <props> 5. <prop key="administrator">administrator@somecompany.com</prop> 6. <prop key="support">support@somecompany.com</prop> 7. </props> 8. </property> 9. </bean> 10. <bean id="child" parent="parent"> 11. <property name="adminEmails"> 12. <!-- the merge is specified on the *child* collection definition --> 13. <props merge="true"> 14. <prop key="sales">sales@somecompany.com</prop> 15. <prop key="support">support@somecompany.co.uk</prop> 16. </props> 17. </property> 18. </bean> 19. <beans> 范型 Spring2.0支持范型集合属性的映射。 Depends-on 大部分情况下,依赖关系是通过设值方法(ref元素)定义的,还是有些情况依赖关系不是很直接,比如某个类的实例化需要执行一段静态初始化代码(如注册数据库驱动),depends-on支持逗号分隔的属性值,可以显式指定必须之前初始化的Bean实例。 懒加载 Spring 的缺省行为是容器创建时初始化所有的单例类,可以使用lazy-init属性指定一个Bean在请求时再初始化。需要注意的是,如果一个非懒初始化的单例 Bean引用一个懒初始化的Bean,那么即便你指定了lazy-init,Spring还是会执行初始化。 可以在容器级别配置default-lazy-init属性。 自动绑定 Spring 提供几种模式自动解决Bean实例之间的依赖关系,这是通过autowire属性实现的,目前支持五种自动绑定模式:none,byname, byType,constructor,autodetect。需要注意的是显式依赖指定总是会重写自动绑定,当前还不支持简单属性的自动绑定。 自动绑定可以极大的减轻 XML属性配置的工作量,但是有时候可能会产生二义性。 方法注入 如果一个单例Bean的某个方法调用时需要获取一个非单例Bean的实例,因为容器只会实例化单例Bean一次,Spring提供三种方式解决此问题。 单例Bean实现BeanFactoryAware接口,主动查找需要的非单例Bean,这种方式的缺点是造成对Spring框架的依赖。 查询方法注入:单例Bean实例定义一个抽象的查找方法,通过<lookup-method></lookup-method>元素进行配置,Spring会使用CGLIB库动态实现一个子类,重写查找方法。这种方式的缺点是测试包含抽象查找方法的Bean类比较困难,另外包含方法注入的 Bean实例不能被序列化。 替换方法注入:这种方式比较高级,需要使用的时候可以查阅参考手册。 实例范围 Spring 框架可以控制创建的Bean实例的范围,目前支持五个范围设置,其中三个应用于基于WEB的应用程序,这五个范围是:singleton, prototype,request,session,global session。Spring2.0也支持用户自定义范围。 如 果需要将request,session,global session范围内的对象依赖注入到prototype,singleton范围的实例中,需要使用Spring框架提供的代理机制,为什么需要使用代 理机制?假定一个singleton实例依赖一个基于会话的实例,因为单例实例只会被初始化一次,如果按惯常的配置方式,将导致singleton实例总 是使用的同一个依赖实例,这显然不是我们需要的结果。使用代理机制,只需要加一行配置代码即可,示例如下: xml 代码 1. <bean id="userPreferences" class="com.foo.UserPreferences" scope="session"> 2. <!-- this next element effects the proxying of the surrounding bean --> 3. <aop:scoped-proxy/> 4. </bean> 5. <!-- a singleton-scoped bean injected with a proxy to the above bean --> 6. <bean id="userService" class="com.foo.SimpleUserService"> 7. <!-- a reference to the proxied 'userPreferences' bean --> 8. <property name="userPreferences" ref="userPreferences"/> 9. </bean> 通过指定 merge=true,child实例将拥有parent实例的所有属性并重写parent实例的同名属性值。 标记接口 Spring 提供几个标记接口改变容器中Bean实例的行为,Spring框架使用BeanPostProcessor回调这些标记接口的方法。 包括: InitializingBean……允许Bean实例在所有的属性被设置后,执行初始化动作,通常应该避免使用此接口,因为可以配置init-method方法。 DisposableBean……允许Bean实例在容器销毁时得到回调,通常应该避免使用此接口,因为可以配置destroy-method方法。 BeanFactoryAware…… 允许Bean实例获取当前BeanFactory的实例,通常不推荐使用此接口,因为会与Spring紧藕合,有一个可选方式是使用 ObjectFactoryCreatingFactoryBean,这个类本身实现了BeanFactoryAware接口。 BeanNameAware……允许Bean实例获取其在BeanFactory中的id属性。 优雅退出 基 于WEB的ApplicationContext实现在WEB应用程序关闭时,可以优雅的关闭容器。非WEB应用中如果希望应用关闭时,容器可以调用单例 Bean的销毁方法,优雅退出,必须向JVM请求一个shutdown钩子,这通过调用ApplicationContext实现的 registerShutdownHook()方法来实现,示例代码如下: java 代码 1. AbstractApplicationContext ctx 2. = new ClassPathXmlApplicationContext(new String []{"beans.xml"}); 3. // add a shutdown hook for the above context... 4. ctx.registerShutdownHook(); Bean定义继承 可以定义一个Bean,其配置数据来自于另外一个Bean,子Bean可以重写父Bean的属性,或添加一些值,使用这种Bean定义的继承可以节省很多工作量。子Bean是通过parent属性标识的。示例配置如下: xml 代码 1. <bean id="inheritedTestBean" abstract="true" 2. class="org.springframework.beans.TestBean"> 3. <property name="name" value="parent"/> 4. <property name="age" value="1"/> 5. bean> 6. <bean id="inheritsWithDifferentClass" 7. class="org.springframework.beans.DerivedTestBean" 8. parent="inheritedTestBean" init-method="initialize"> 9. <property name="name" value="override"/> 10. <!-- the age property value of 1 will be inherited from parent --> 11. bean> 容器扩展点 BeanPostProcessor…… 此接口定义许多回调方法,开发人员可以提供自己的实例化,依赖注入等逻辑,容器通常在已经实例化Bean后调用这些接口方法。通常 BeanPostProcessor用来检测标记接口,检查注记(Annotation)来扩展Spring IOC容器,许多AOP框架类通过实现BeanPostProcessor来提供代理机制。 BeanFactoryPostProcessors…… 此接口主要用来操作Bean定义,可以在容器实例化Bean之前读取和改变Bean配置元数据。PropertyResourceConfigurer和 PropertyPlaceholderConfigurer就是BeanFactoryPostProcessor接口的实现。 FactoryBean…… 此接口用来自定义Bean实例化逻辑,相当于一个Bean工厂类,核心方法getBean返回FactoryBean创建的实例,Spring框架提供很多FactoryBean接口的实现。 ApplicationContext 国际化:ApplicationContext 接口扩展MessageSource接口提供国际化功能,当ApplicationContext加载时会自动查找上下文中id为 messageSource的Bean实例,如果没有找到将使用框架提供的StaticMessageSource,然后将消息请求委托给 MessageSource实例。 事件派发:ApplicationContext 通过ApplicationEvent和ApplicationListener提供事件派发功能。如果一个Bean实例实现了 ApplicationListener接口,每次ApplicationEvent事件发送到ApplicationContext时,Bean实例都 会接到通知,这实际上是访问者模式的实现。开发者可以扩展ApplicationEvent实现自己的事件类,然后在合适的时候调用 ApplicationContext的publishEvent发布事件。 访问资源文件:ApplicationContext 实现ResourceLoader,接口可以用来加载资源文件,Bean实例可以实现ResourceLoaderAware标记接口,这样在 ApplicationContext初始化实例时,会将自己传递给Bean实例。另外Bean实例也可以提供Resource属性,由 ApplicationContext进行依赖注入。Resource属性值可以是简单的路径字符串,Spring框架提供PropertyEditor 转换这些路径字符串为Resource实例。
发表评论
-
AOP(Aspect oriented programming) 面向方面编程
2010-09-29 11:15 1081一 AOP(Aspect oriented program ... -
Spring框架与AOP思想的研究与应用
2010-09-29 11:11 1218Spring框架与AOP思想的研 ... -
Spring AOP总结
2010-09-29 10:47 1444Spring AOP总结 Spring ... -
Spring参考手册 AOP
2010-09-29 10:39 1425Spring参考手册 AOP 概述 ... -
Spring总结之AOP
2010-09-29 10:35 1205Spring总结之AOP AOP( ... -
对Spring AOP中三种实现方式的总结
2010-09-29 10:34 1218aop: 1: 编程式: 其中,必须先自己从s ... -
Spring IoC控制反转总结
2010-09-28 09:21 1479Spring IoC控制反转总结 ... -
Spring 是什么 以及总结
2010-09-28 08:20 1266什么是spring Spring的 ... -
Spring Jar包
2010-09-18 21:57 1635Spring Jar包 spring.jar是包含 ... -
Spring的简单应用实例
2010-08-21 18:29 960Spring的简单应用实例 ... -
spring自己总结的知识
2010-08-15 13:52 929Spring:总结用XML配置的十二个最佳实践2007-05- ... -
spring笔记
2010-08-15 13:51 1045------------------------------- ...
相关推荐
Spring Framework 开发参考手册2.0 Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的。因此,我们说这些对象间存在依赖关系。 Java语言和...
Spring可能是你的企业应用程序所需要的一站式解决方案,但Spring仍然是模块的,允许你只使用你所需的哪些部分,而无须附加上其他部分。你可以使用IoC容器,在其上使用Struts,...这份手册提供Spring的功能参考指南。
另外,必须感谢Christian Bauer(来自Hibernate团队) ,他改写了DocBook-XSL软件来创建Hibernate参考手册,我们才得以创建这份文档。 也需要感谢Russell Healy为本手册的部分内容进行的详细而极富价值的审核。
6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...
6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...
IoC快速入门 25.1.简介 25.2.Movie Finder 25.2.1.开始建立MovieFinder应用程序 25.2.2.第一个对象定义 25.2.3.属性注入 25.2.4.构造器参数注入 25.2.5.总结 25.2.6.日志 25.3.应用程序上下文和IMessageSource接口 ...
spring2.52 Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。...这份手册提供Spring的功能参考指南。
Spring2.5-Reference_zh_CN.chm Spring2.5-中文参考手册.chm spring——AOP,IOC.doc Spring框架快速入门之简介.doc spring配置全书.doc Spring中的IOC与AOP详解.ppt
Spring 是由 Rod Johnson 撰写,并在其著作 Expert One-on-One: J2EE Design and Development 中有提到过,它是个轻量级(Lightweight)容器(Container)、实现 IoC(Inversion of Control)、AOP(Aspect-oriented...
在自学Spring Framework 开发参考手册2.5时做的学习笔记,其中在遇到手册上不能理解的地方的时候,在网上找了一些比较好的文档也放在了里面。
Spring技术手册这本书介绍了spring 2.0的新特性,诸如spring 2.0的新配置、新aop支持、增强的ioc、jdbc和form标签等新功能。它通过实际完成一个完整的spring项目示例,展示了与spring相关api的使用技巧,能够显著...
Spring Framework 开发参考手册 目录 1. 简介 1.1. 概览 1.1.1. 使用场景 2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的...
针对《spring framework参考手册》来实现实例,几乎涵盖了全部Spring的J2EE开发。主要包括Spring的IoC、AOP(注释注入、Schema注入、与AspectJ的集成、有接口和无接口的实现的界面编程)、中间数据访问层(编程事...
spring3.1中文参考文档,南磊翻译,现在有4章,目录如下: 第一部分 Spring framework概述.......................................................................................................................
6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
Spring是JAVA中最流行的库,主要包含IOC和AOP两大核心模块,它和基于它的一系列开源项目构建了一个完善而强大的生态系统
主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...
主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...