Spring
文章平均质量分 72
techlgwjda
这个作者很懒,什么都没留下…
展开
-
Spring配置事务管理和简化事务配置
一.使用TransactionProxyFactoryBean创建事务代理(通常事务代理以Service层为目标bean) PROPAGATION_REQUIRED,-MyCheckedException PROPAGATION_REQUIREDPROPAGATION_REQU原创 2013-11-30 10:40:50 · 3250 阅读 · 0 评论 -
Spring系列(6)---总结(1)
Spring当然不仅仅只包括我们前面看到的这些技术,但其核心的思想主要是IOC+AOP这两块。在前面的几块中我们着重讲了AOP,最后简单介绍了一下IOC.这个系列介绍到这儿,基本涉及了Spring主要思想和技术,并建立了自己的一个简单的AOP模型。(一)我们首先来看看我们用到了那些关键性技术:1) 动态编译或IL指令注入 框架提供了这种技术的类库支持,如果没有这种库的支持转载 2015-01-28 12:03:39 · 560 阅读 · 0 评论 -
Spring系列(5)---IOC技术.
说实话,我对Spring技术还是不算很了解,IOC的技术我在实体框架技术中提到过,但IOC和AOP作为Spring技术的两个核心思想,我觉得在总结之前,还是有必要说明一下我所理解的IOC.我们知道,如果两个事务之间存在逻辑关系,而且你需要根据这个逻辑关系做事,(比如类A和类B,类A需要调用类B的方法,比如ORM等),那么该做的事情,其实一件都不会少的,只是我们可以利用一些技术手段来减少直接转载 2015-01-28 12:01:49 · 625 阅读 · 0 评论 -
Spring系列(3/4)----一个较为完善的模型(完)
接上一篇,我们继续来完善这个模型,我们为附加责任类定义了一个接口,这样,只要实现这个接口的类都可以注册,接收代理类的调用通知;同时为了更好的交互,我们还定义了一个调用参数接口,和一个具体的调用参数类,接下来,我们再看看代理类:/// /// 代理类,从AClass继承. /// public class ProxyAClass1 : AClass转载 2015-01-28 12:00:08 · 685 阅读 · 0 评论 -
Spring系列(3/4)----一个较为完善的模型(续)
接上篇:4、我们知道我们进行动态代理的目的是为了附加责任,也就是在目标类方法执行的时候,我们能增加一些附加的功能。我们前面的模型虽然可以达到这个目的,但通信信息不够。观察者虽然可以获取目标类,但无法知道当前执行的方法和参数值,这在有些情况下虽然没什么不利,但既然我们的目标其实就是监视目标类的方法的执行,能有目标类执行方法时的方法信息和当前实际参数的信息,当然是更好了,为此,我们可以专门增加转载 2015-01-28 11:59:31 · 433 阅读 · 0 评论 -
Spring系列(3/3)---一个较为完善的模型
上一篇,我们建立了一个可用的模型,但我们也看到了它的不足,下面,我们就来继续完善这个模型:1、首先,因为委托的目的其实是为了与附加责任类进行交互,而挂接了委托的附加责任类才会收到消息,从这点来看,是一个非常典型的观察者模式应用场景,因此我们觉得引入这个模式,好处是观察注册有专门的类来负责管理,在这里是代理类行使这个责任(后面的模型会转到代理类工厂),二是附加责任类以类的身份参与,而不再是简转载 2015-01-28 11:58:57 · 476 阅读 · 0 评论 -
Spring系列(3/2)---交互的改进
前面一篇,我们写了一个代理类,可以实现一些功能,但作为动态代理类的原型,还是有问题的。我们来改进一下原来的类,如下: /// /// 代理类,从AClass继承.这是必须的,否则AClass能用的地方, ProxyAClass1却没法用.这里的改进主要是将需要切入的委托,采用构造参数传递进去,有利于动态构造实例。 /// public cla转载 2015-01-28 11:55:41 · 515 阅读 · 0 评论 -
Spring系列(2)--为什么需要动态代理
前一篇我把我自己实现动态包装的工厂类实现贴了出来,这一篇就来讲讲为什么要进行动态的代理。理由看起来有以下几点:1、有的时候我们需要为一些类的方法增加一些额外的责任,因为这些责任是额外的,去改动这些类当然是不好的。 对于这点,大家可以很快的想到用装饰模式或者代理模式去实现。当然,如果责任固定,而且是事先可预料的,可以在代码中预先进行处理,例如增加一个转载 2015-01-28 11:53:36 · 624 阅读 · 0 评论 -
Spring系列(1)--创建动态代理类
象DotNet,Java之类的语言能够进行动态代理类的创建,得益于其本身并不是直接编译成机器代码,而是编译成中间语言,在运行时才解释或动态编译成目标机器语言。这也是为什么这些概念先在Java兴起的根本原因。产生动态代理类,一般都是利用Emit命名空间的指令,但这个对IL的要求比较高,我这里利用C#提供的动态编译功能实现,优点是直观,容易理解,不用熟悉IL指令,缺点当然是显得不怎么专业。转载 2015-01-28 11:51:26 · 660 阅读 · 0 评论 -
Spring系列(3/1)---交互的一种尝试
前一篇,我们知道可以利用委托和代理来实现为目标类增加额外责任,这里我们先用一个简单的例子说明如何去实现.//目标类,有3个公共方法,但由于非虚方法无法继承,所以能够切入的只有2个公共虚方法。虽然从生产代理的角度来讲,非虚公共方法也可以截获,//但要求代理类重写该方法,而一旦重写,根据方法的调用规则,在用目标类型调用这个方法时,其实是调不到代理类中的这个方法的,所以就没有机会截获和监视。转载 2015-01-28 11:55:19 · 406 阅读 · 0 评论 -
SSH开发环境的配置:web.xml、Spring集成hibernate和Spring集成Struts2
一、struts + hibernate + Spring整合开发包的导入:从myeclipse集成开发工具中导入或者从网站下载放在工程项目WEB-INF包下的lib包内即可。二、本文主要说明开发包导入后对配置文件的配置。三、相应配置文件的配置:web.xml、struts.xml、applicationContext.xml。1.在web.xml配置中配置Spring和Struts2原创 2013-11-30 15:03:09 · 4103 阅读 · 0 评论 -
spring对hibernate的支持详解
1.管理SessionFactory 使用Spring整合Hibernate时我们不需要hibernate.cfg.xml文件。首先,在applicationContext.xml中配置数据源(dataSource)bean和session工厂(sessionFactory)bean。其中,在配置session工厂bean时,应该注入三个方面的信息: ●数据源bean转载 2013-12-02 16:51:21 · 937 阅读 · 0 评论 -
用TransactionProxyFactoryBean实现spring的声明式事务
spring对声明式事务是通过它的AOP框架实现的。要在spring中使用声明式事务,需用到TransactionProxyFactoryBean,它类似于ProxyFactoryBean,不过其目的是将方法包装在事务上下文中。可以创建自己的ProxyFactoryBean来处理事务,也能达到同样的效果,但TransactionProxyFactoryBean是专门为声明式事务设计的,用它转载 2013-11-30 11:06:20 · 749 阅读 · 0 评论 -
Spring系列(6)---总结(完)
下面我们来看看IOC和AOP的一些优劣:IOC:优势:1)可以解耦一些逻辑关系,使得这种关系更加松散,而且可以在不重新编译程序的情况下通过配置信息的更改达到更改程序逻辑的目的;2)可以大量减少一些中间(比如典型的创建逻辑)类;3)带来了很大的灵活性和可扩展性。劣势:1)只适合逻辑比较简单,而且形式比较统一,量比较大的地方,对于复杂的逻辑使用配置文件完成,反而会增加系统的复杂转载 2015-01-28 12:05:17 · 667 阅读 · 0 评论