随笔分类 - Spring
摘要:1、Spring对事务管理的支持 Spring为事务管理提供了一致的编程模板,在高层次建立了统一的事务抽象。也就是说,不管选择Spring JDBC、Hibernate 、JPA 还是iBatis,Spring都让我们可以用统一的编程模型进行事务管理。 在Spring事务管理SPI(Service
阅读全文
摘要:1、数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称ACID。 2)数据并发的问题:脏读、不可重复读、幻想读、第一类丢失更新、第二类丢失更新。 3)数据
阅读全文
摘要:4种定义切面的方式: 1)基于@AspectJ注解的方式: 2)基于<aop:aspect>的方式; 3)基于<aop:advisor>的方式; 4)基于Advisor类的方式。 如果项目采用JDK5.0,可以优先考虑使用@AspectJ;如果项目只能使用低版本的JDK,则可以考虑使用<aop:as
阅读全文
摘要:使用基于Schema的切面定义后,切点、增强类型的注解信息从切面类中剥离出来,原来的切面类也就蜕变为真正意义上的POJO了。 1、一个简单切面的配置 基于Schema配置的切面示例: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http
阅读全文
摘要:@AspectJ可以使用切点函数定义切点,我们还可以使用逻辑运算符对切点进行复核运算得到复合的切点,为了在切面中重用切点,我们还可以对切点进行命名,以便在其他的地方引用定义过的切点。当一个连接点匹配多个切点时,需要考虑织入顺序的问题,此外一个重要的问题是如何再增强中访问连接点上下文的信息。 Wait
阅读全文
摘要:需要的类包: 1、一个简单的例子 Waiter接口: package com.yyq.annotation; public interface Waiter { void greetTo(String name); void serveTo(String name); } NaiveWaiter业务
阅读全文
摘要:1、了解注解 对于Java开发人员来说,在编写代码时,除了源程序外,还会使用Javadoc标签对类、方法或成员变量进行注释,一遍使用Javadoc工具生成和源代码配套的Javadoc文件,如@param、@return就是注解标签。我们可以使用Xdoclet快速生成对应程序代码的配置文件。在JDK5
阅读全文
摘要:Spring为我们提供了自动代理机制,让容器为我们自动生成代理,把我们从烦琐的配置工作中解放出来,在内部,Spring 使用BeanPostProcessor自动地完成这项工作。 1、实现类介绍 这些基于BeanPostProcessor的自动代理创建器的实现类,将根据一些规则自动在容器实例化Bea
阅读全文
摘要:增强被织入到目标类的所有方法中,但是如果需要有选择性的织入到目标类某些特定的方法中时,就需要使用切点进行目标连接点的定位。增强提供了连接点方位信息:如织入到方法前面、后面等,而切点进一步描述织入到哪些类的哪些方法上。Spring通过org.springframework.aop.Pointcut接口
阅读全文
摘要:AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring支持5种类型的增强: 1)前置增强:org.springframework.aop.BeforeAdvice 代表前置增强,因为Spring 只支持方法级的增强,所有MethodBeforeAdvice是目前
阅读全文
摘要:Spring AOP使用动态代理技术在运行期织入增强的代码,两种代理机制包括:一是基于JDK的动态代理,另一种是基于CGLib的动态代理。之所以需要两种代理机制,很大程度上是因为JDK本身只提供接口的代理,而不支持类的代理。 1、带有横切逻辑的实例 ForumService:包含性能监视横切代码 p
阅读全文
摘要:1、AOP术语 1)连接点(Joinpoint) 程序执行的某个特定位置:如类开始初始化前、类初始化后、类某个方法调用前、调用后、方法抛出异常后。一个类或一段程序代码拥有一些具有边界性质的特定点,这些点中的特定点就称为“连接点”。Spring仅支持方法的连接点,即仅能在方法调用前、方法调用后、方法抛
阅读全文
摘要:基于XML配置 基于注解配置 基于Java类配置 适合场景 1)Bean实现类来源于第三方类库,如DataSource,JdbcTemplate等,因无法在类中标注注解,通过XML配置方式较好;2)命名空间的配置,如aop、context等,只能采用基于XML的配置 Bean的实现类是当前项目开发的
阅读全文
摘要:普通的POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了,每个标注了@Bean的类方法都相当于提供一个Bean的定义信息。 基于Java类的配置方法和基于XML或基于注解的配置方式相比,前者通过代码的方式更加灵活地实现Bean的实例化及Bean之间的装
阅读全文
摘要:基于XML的配置,Bean定义信息和Bean实现类本身是分离的,而采用基于注解的配置方式时,Bean定义信息即通过在Bean实现类上标注注解实现。 @Component:对类进行标注,Spring容器自动将POJO转换为容器管理的Bean; @Repository:用于对DAO实现类进行标注; @S
阅读全文
摘要:1、属性注入 注意点: 1)如果类中显示定义了一个带参的构造函数,则一定还要显示提供一个无参构造函数,否则使用属性注入时将抛出异常。 2)JavaBean关于属性命名的特殊规范。Spring只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不做要求。如maxSpee
阅读全文
摘要:1、Spring容器 1)要使应用程序中的Spring容器成功启动,需要以下三方面的条件都具备: · Spring架构的类包都已经放在应用程序的类路径下; · 应用程序为Spring提供完备的Bean配置信息; · Bean的类都已经放到应用程序的类路径下。 2)Bean配置信息是Bean的元数据信
阅读全文
摘要:1、实现各种生命周期控制访问的NewCar 2、InstantiationAwareBeanPostProcessor实现类 3、BeanPostProcessor实现类 4、工厂后处理器:MyBeanFactoryPostProcessor.java 5、beans.xml 5、测试类:BeanL
阅读全文
摘要:Spring通过一个配置文件描述Bean及Bean直接的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Sprig的IoC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。 BeanFactoryT
阅读全文
摘要:Spring设计一个Resource接口,它为应用提供了更强的访问底层资源的能力。该接口拥有对应不同的资源类型的实现类。 输出结果: 输出结果:
阅读全文
浙公网安备 33010602011771号