随笔分类 - Spring 技术解密
spring框架深入学习笔记
摘要:相关系列文章的全部代码在文章末尾可下载终于到关键的spring声明式事务管理了,大多数Spring用户选择声明式事务管理。因为它是对业务代码侵入性最小的选择,也最符合spring所倡导的非侵入式 轻量级容器的理念。这里分别讲解spring基于注解的和基于aop的事务处理。这篇文章暂时只讲解传统的基于Aop的声明式事务管理,即使用代理工厂类去实现业务类的事务管理支持,相比tx/aop命名空间的方式,虽然有很多缺点,但是它更能直观让我们看到Spring实施事务管理的内在工作原理,下面的代码分别讲解了基于注解的声明式事务管理,和基于Aop的事务管理public class TicketBooking
阅读全文
摘要:在上一章节中,我们实践了事务管理如何在程序中进行维护,我们采用的是传统的手动设置事务的提交和回滚操作,那么srping在事务管理方面给我们带来了什么呢?首先spring为我们提供了两种事务管理的方式,声明式事务管理和编程式事务管理,大部分的应用开发者更倾向于前者,因为他应用程序代码实现了更高层次的解耦,编程式事务管理也有一些自己的优势,比如相比之下,他更容易在应用中做细粒度的事务管理,本篇文章尽量用实例和白话做编程式事务开发的示例。public class TicketBookingServiceThroughPlatformManager extends JdbcDaoSupport{ ..
阅读全文
摘要:简介:事务管理是应用程序与DB进行交互的关键部分,应用程序必须确保数据的完整性和唯一性,spring提供了对众多当下流行的数据访问层框架的无缝集成(JDBC, JPA, Hibernate etc.)下面的文章我们将列举几个spring怎样去进行事务管理的例子,这篇文章力图简洁的体现spring事务管理的方式,所以可可能的白话。并且这篇文章中涵盖了声明式事务管理和编程式事务管理并最后介绍了如何用注解和aop的形式去实现事务管理。spring究竟给我带来了什么,我们有必要探究一下当没有spring的时候我们是怎么进行事务管理的,下面先以一个很日常的例子购买电影票的例子去模拟事务管理的场景。如果需
阅读全文
摘要:项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法:点击项目右键->Build Path->Add librarys:打开Add Libraries对话框,然后选定 MyEclipse Libraries:点击Next,找到Spring 2.0 aop Libraries并勾选上,点击finsh即可。如果在项目里面能看到下面的库文件,说明已经安装成功。事务配置首先在/WEB-INF/applicationContext.xml添加以下内容:<!-- 配置事务管理器 --><bean id=
阅读全文
摘要:Spring提供了几个标志接口,用来改变容器中bean的行为。包括InitializingBean和DisposableBean.实现这两个接口的bean在初始化和析构时,容器都会调用前者的afterPropertiesSet()方法,以及后者的destroy()方法。Spring在内部使用BeanPostProcessor实现来处理它能找到的任何标志接口并调用相应的方法。如果需要自定义特性或者生命周期行为,可以实现自己的BeanPostProcessor。关于这个请参照之前的容器扩展点。1)初始化回调:package springapp.test.beanCustomizing;import
阅读全文
摘要:注入依赖:依赖:对象之间存在的相互关系注入依赖:对象通过一些方式形成的相互关系(构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性),相比之前的bean自己来控制本身实例化(在构造器中指定依赖关系或者类似使用服务定位器模式来自助控制依赖关系的注入)容器实现了在创建bean时注入这些依赖关系,控制从根本上发生了倒转,也这里也就是我们所说的IOC(控制翻转)。应用DI原则很明显的有点就是代码更清晰:bean自己本身不用担心与其他bean的依赖关系,实现更高层次的松耦合易如反掌。DI有两种注入方式,setter注入和构造器注入:我们通过下边的例子可以看出构造器方法注入会使程序
阅读全文
摘要:在spring中bean的作用域是spring容器用来返回调用者实例类型的在spring中有5中类型的作用域:先来比较一下singeton 和 prototype:package springapp.test; /** * @author zhangxuegang * @version 1.0 * @created 2012-10-16 下午11:09:38 */public class CustomerService { String message; public String getMessage() { return message; }...
阅读全文
摘要:在spring中,那些组成应用程序主体 及springIOC容器所管理的对象,被称之为 bean,简单的讲,bean就是由spring容器初始化,装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean定位以及bean相互间的依赖关系将通过配置元数据来进行描述。容器org.springframework.beans.factory.BeanFactory 是Spring IoC容器的实际代表者,IoC容器负责容纳此前所描述的bean,并对bean进行管理。在Spring中,BeanFactory是IoC容器的核心接口。 它的职责包括:实例化、定位、配置应用程序中的
阅读全文
摘要:spring aop的底层实现有两种方式,一种是基于jdk的动态代理,只针对接口,还有一种是基于CGlib,这里结合springapp(spring官方示例项目)及《spring3.x企业应用开发实战》进行对基于CGlib的方式进行详细的阐述,代码示例可下载:在项目原有的基础上下载CGLIB支持包,下载地址:http://cglib.sourceforge.net/创建代理类:package springapp.util;import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.
阅读全文
摘要:文章从目录上对Spring有个大致的了解。-aspectj --它是在Spring框架下使用aspectj的源代码和测试程序文件。Aspectj是java最早的提供AOP的应用框架。-dist --它是Spring 的发布包,关于发布包下面会详细进行说明。-docs --它包含Spring相关的文档,包括有Spring api 的javadoc、reference 参考指南、Spring的标签库使用文件及Spring MVC 的MVC-step-by-step 讲解与示例。都是很好的文档, 值得好好研究一下。-lib --它包含Spring 所依赖的第三方开源包。-mock ...
阅读全文
摘要:报错内容:F:\springProject\springapp\build.xml:85: taskdef class org.apache.catalina.ant.InstallTask cannot be found错误原因:在tomcat以后的版本中,InstallTask类被替换为DeployTask所以直接替换类即可。Class InstallTask is deprecated & replaced by DeployTask, so later version catalina-ant.jar (tomcat set up) doesn't have class
阅读全文
摘要:耦合性是软件工程中的一个重要概念。对象之间的耦合性就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。spring Ioc思想控制翻转也就是spring所推出的依赖注入传统的方法假设我们前端用的struts,那么action中我们对业务逻辑的编写一般是这样的这里是一段伪代码:publicclass CustomerDao { publicboolean getCustomerByAccount() {/* 代码 */ } } publicclass LoginAction { pub...
阅读全文

浙公网安备 33010602011771号