转:Spring源码分析:IOC容器在web容器中的启动
摘要:以下引用自博客:http://jiwenke-spring.blogspot.com/上面我们分析了IOC容器本身的实现,下面我们看看在典型的web环境中,Spring IOC容器是怎样被载入和起作用的。简单的说,在web容器中,通过ServletContext为Spring的IOC容器提供宿主环境,对应的建立起一个IOC容器的体系。其中,首先需要建立的是根上下文,这个上下文持有的对象可以有业务对象,数据存取对象,资源,事物管理器等各种中间层对象。在这个上下文的基础上,和web MVC相关还会有一个上下文来保存控制器之类的MVC对象,这样就构成了一个层次化的上下文结构。在web容器中启动Spr
阅读全文
转:Spring源码分析:IOC容器
摘要:在认真学习Rod.Johnson的三部曲之一:<<Professional Java Development with the spring framework>>,顺便也看了看源代码想知道个究竟,抛砖引玉,有兴趣的同志一起讨论研究吧!以下内容引自博客:http://jiwenke-spring.blogspot.com/,欢迎指导:)在Spring中,IOC容器的重要地位我们就不多说了,对于Spring的使用者而言,IOC容器实际上是什么呢?我们可以说BeanFactory就是我们看到的IoC容器,当然了Spring为我们准备了许多种IoC容器来使用,这样可以方便我们
阅读全文
转:Spring中的ContextLoaderListener
摘要:ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于ApplicationContext.xml这个配置文件部署在哪,如何配置多个xml文件,书上都没怎么详细说明。现在的方法就是查看它的API文档。在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。看看它的API说明第一段说明ContextLo
阅读全文
web项目中通过spring获得ApplicationContext
摘要:方法一、 @Override public void sessionDestroyed(HttpSessionEvent event) { ServletContext context = event.getSession().getServletContext(); ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context); LoginTempService loginTempService = (loginTempService)ctx.getBean("loginT
阅读全文
转:Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)
摘要:第一种代理即Java的动态代理方式上一篇已经分析,在这里不再介绍,现在我们先来了解下GCLIB代理是什么?它又是怎样实现的?和Java动态代理有什么区别?cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。cglib封装了asm,可以在运行期动态生成新的class。cglib用于AOP,jdk中的proxy必须基于接口,cglib却没有这个限制。原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利
阅读全文
转:Spring声明式事务
摘要:1、声明式事务配置* 配置SessionFactory* 配置事务管理器* 事务的传播特性* 那些类那些方法使用事务2、编写业务逻辑方法* 继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是 Hibernate Session的轻量级封装* 默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的* 编写业务逻辑方法时,最好将异常一直向上抛出,在表示层(struts)处理* 关于事务边界的设置,通常设置到业务层,不要添加到Dao上3、了解事务的几种传播特性1. PROPAG
阅读全文