![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPRING相关
xiaofengnh
这个作者很懒,什么都没留下…
展开
-
spring异常抛出触发事务回滚策略导读
特别注意:即使是在spring默认的异常触发事务回滚策略(unchecked exception)下, 如果使用try-catch捕获抛出的unchecked异常后没有在catch块中采用页面硬编码的方式使用spring api对事务做显式的回滚,则事务不会回滚。 “将异常捕获,并且在catch块中不对事务做显式回滚(或其他应该做的操作如关闭资源等)=生吞掉异常”一般不需要在业务方转载 2013-12-19 20:42:26 · 615 阅读 · 0 评论 -
spring容器加载完毕干一件事情(利用ContextRefreshedEvent事件)
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们这个类有可转载 2014-08-07 11:45:44 · 403 阅读 · 0 评论 -
Spring的ApplicationEvent的使用
Spring 3.0中提供了很多类似*Aware的类,其中ApplicationContextAware接口可以实现我们在初始化bean的时候给bean注入ApplicationConxt(Spring上下文对象)对象。ApplicationContextAware接口提供了publishEvent方法,实现了Observe(观察者)设计模式的传播机制,实现了对bean的传播。通过Applicat转载 2014-08-07 12:56:59 · 291 阅读 · 0 评论 -
spring 工具
Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大部分是可以在脱离 Spring 框架时使用的。了解 Spring 中有哪些好用的工具类并在程序编写时适当使用,将有助于提高开发效率、增强代码质量。在这个分为两部分的文章中,我们将从众多的 Spring转载 2014-08-07 20:16:06 · 308 阅读 · 0 评论 -
Spring多数据源的动态切换
目前很多项目中只能配置单个数据源,那么如果有多个数据源肿么办?Spring提供了一个抽象类AbstractRoutingDataSource,为我们很方便的解决了这个问题。1.写一个DynamicDataSource类继承AbstractRoutingDataSource,并实现determineCurrentLookupKey方法public class DynamicDataSourc转载 2014-08-10 10:41:56 · 726 阅读 · 1 评论 -
spring分布式事务
分布式事务是指操作多个数据库之间的事务,在tomcat下,是没有分布式事务的,不过可以借助于第三方软件jotm(Java Open Transaction Manager )和AtomikosTransactionsEssentials实现,在spring中分布式事务是通过jta(jotm,atomikos)来进行实现,下面是采用jotm进行实现spring跨库之间的事务jotm下载地址:转载 2014-08-11 20:12:20 · 423 阅读 · 0 评论 -
Spring IOC核心源码学习(一)
本文主要以 spring ioc 容器基本代码骨架为切入点,理解 ioc 容器的基本代码组件结构,各代码组件细节剖析将放在后面的学习文章里。关于IOC容器 IoC 容器:最主要是完成了完成对象的创建和依赖的管理注入等等。先从我们自己设计这样一个视角来考虑:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需转载 2014-09-26 14:36:36 · 315 阅读 · 0 评论 -
动态代理:JDK动态代理和CGLIB代理的区别
当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象。按照代理对象的创建时期不同,可以分为两种:静态代理:程序员事先写好代理对象类,在程序发布前就已经存在了;动态代理:应用程序发布后,通过动态创建代理对象。其中动态代理又可分为:1.JDK动态代理此时代理对象和目标对象实现了相同的接口转载 2014-09-29 14:59:28 · 364 阅读 · 0 评论 -
Spring AOP 实现原理与 CGLIB 应用
AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强转载 2015-03-24 14:05:41 · 271 阅读 · 0 评论 -
SpringMvc系列教程
http://blog.csdn.net/hongjun1847/article/category/2034227转载 2014-03-05 22:50:03 · 420 阅读 · 0 评论 -
spring security 教程入门
spring security 是一个方便的,强大的基于java web 应用的权限框架。总结了入门的一些列文章,以后更新都在这里.spring security 认证处理 spring secruity 入门学习(XML方式配置用户登录), 源码下载spring secruity 入门学习(数据库方式配置用户登录)spring security转载 2014-03-05 20:35:05 · 847 阅读 · 0 评论 -
Spring工厂方式创建Bean实例
很多情况下使用定义一个bean,这种定义方式Spring将会调用默认的无参数构造方法创建Bean实例。除此之外还可以使用工厂方式创建Bean实例,实现Bean创建与使用的分离,将Bean创建工作交由工厂来完成。配置工厂Bean的三种方式。 抽象接口: Java代码 public interface IMusicBox { public voi转载 2014-01-07 22:52:52 · 548 阅读 · 0 评论 -
spring源码学习之路---深入AOP(终)
上一章和各位一起看了一下springAOP的工作流程,当我们给出AOP相关的配置以后,直接从IOC容器中拿出来的就是已经加强过的bean。这说明spring在这个过程中一定做了什么。 本章我们就一起来看一下spring是如何完成对bean的增强的,首先我们来看一下,FactoryBean接口中一个方法的定义。[java] view plai转载 2014-03-05 00:18:27 · 447 阅读 · 0 评论 -
spring源码学习之路---IOC初探
上一章当中我没有提及具体的搭建环境的步骤,一个是不得不承认有点懒,另外一个我觉得如果上章所述的那些环境都还不会搭建的话,研究spring的源码还有些过早。 如果你有兴趣的话,相信已经搭建好了学习研究的环境,接下来就可以进入正题了。 网上也有很多关于spring源码学习的文章以及帖子,讲的也都不错,但是有些可能高估了读者的能力,该深入的地方反倒一句带过,我转载 2014-03-05 00:36:51 · 543 阅读 · 0 评论 -
spring源码学习之路---IOC实现原理
上一章我们已经初步认识了BeanFactory和BeanDefinition,一个是IOC的核心工厂接口,一个是IOC的bean定义接口,上章提到说我们无法让BeanFactory持有一个Map来完成bean工厂的功能,是因为spring的初始化是可以控制的,可以到用的时候才将bean实例化供开发者使用,除非我们将bean的lazy-init属性设置为true,初始化bean工厂时采用延迟加载。转载 2014-03-05 00:49:05 · 535 阅读 · 0 评论 -
spring源码学习之路---IOC容器初始化要义之bean定义载入
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 最近工作很忙,时间不多,研究spring的进度被严重拖下来,不过我会一直坚持写完。 上章说到要带各位去看看bean定义载入的要义,其实就是loadBeanDefinitions这个方法的具体实现步骤,下面我们跟随这个方法去看下它到底是如何载入bean定义的。转载 2014-03-05 01:05:21 · 404 阅读 · 0 评论 -
spring源码学习之路---AOP初探
最近工作很忙,但当初打算学习spring源码的事已经基本告一段落,只是一直没时间写这些记录性的文字。 本次鄙人学习spring的源码,有点囫囵吞枣的感觉,其实这样并非就不好,spring作为一个应用平台,自然不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上一遍,哪怕是spring的缔造者。不过最主要的原因是我们确实没有必要把源码全部过一遍。转载 2014-03-05 00:19:25 · 453 阅读 · 0 评论 -
spring源码学习之路---深度分析IOC容器初始化过程
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 最近由于工作和生活,学习耽搁了几天,今天我们继续接着上一章,分析FileSystemXmlApplicationContext的构造函数,到底都做了什么,导致IOC容器初始化成功。[java] view plaincopypublic FileSystemX转载 2014-03-05 00:57:59 · 468 阅读 · 0 评论 -
Spring如何解决循环依赖
Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?首先让我们来定义循环引用类: public class TestA { private TestB testB; public void a() { testB.b(); } public TestB getTestB(转载 2014-03-10 21:36:11 · 539 阅读 · 0 评论 -
Spring实现AOP的4种方式
Spring实现AOP的4种方式 先了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。2.连接点(Joinpoint):程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。3.切入点(Pointcut)通知定义了切面要发生的“故事”和时间转载 2015-09-21 18:53:43 · 275 阅读 · 0 评论