7 KLeonard

尚未进行身份认证

暂无相关描述

等级
TA的排名 4k+

Spring——基于注解的配置

Spring注解配置从Spring2.5开始就可以使用注解来配置依赖注入。使用注解的方式使我们无需在XML中配置一个Bean引用,更加简单和方便。注解配置默认情况下在Spring中是关闭的,我们需要在配置文件中使用<context:annotation-config/>激活它。如下spring-config.xml文件:<?xmlversion="1....

2018-07-15 11:21:24

Spring——AOP(2)之Spring 2.0 中的配置

Spring2.0AOPSpring2.0提供了一种更简便也更强大的方式来编写切面,可以通过基于schema的方式,也可以通过@AspectJ注解的方式,这两种方式都提供了完整的AspectJ切入点语言中的通知和使用方法,但是依然使用的是SpringAOP的织入方式,也就是通过代理的方式进行织入(不同于AspectJ在编译期织入)。Spring2.0AOP完全兼容Spring1...

2018-06-06 12:15:57

AspectJ——基于注解的开发方式

基于注解的开发方式AspectJ5版本支持了基于注解的开发方式,当然其仍然需要AspectJ自己的编译器。要使用基于注解的开发方式,需要为项目引入aspectjweaver.jar包,该Jar包也在AspectJ安装目录下的lib目录中。aspectjweaver.jar中包含了aspectjrt.jar包中的内容,所以只需要引入aspectjweaver.jar包即可。0.一个示...

2018-05-11 10:46:07

AspectJ——切入点语法(7)之this、target、args、if以及逻辑运算

更多的切入点语法本节介绍AspectJ中更多的切入点语法,有很多在之前都用过,这里做一个总结。0.捕获this引用的是特定类型对象的连接点AspectJ提供了this原生切入点来捕获所有的连接点,这些连接点处的this引用的是一个特定的类型。我们在Test13包下做测试,首先业务类Service如下:packageTest13;publicclassServi...

2018-05-10 15:40:48

AspectJ——定义通知

定义通知切入点定义了你对哪些连接点感兴趣,通知则定义了当遇到这些连接点时要做什么。通过块包含直观的Java代码,它看起来非常像Java方法,只不过不能从应用程序中调用它。0.前置通知前面的大部分示例都使用了before()前置通知,它在触发它的连接点之前执行通知。关于它的用法这里不再赘述。这里只贴一个之前的切面例子:packageTest10;publicaspec...

2018-05-09 14:59:50

AspectJ——切入点语法(6)之cflow与cflowbelow

捕获基于控制流程的连接点cflow与cflowbelow提供了一种捕获一个pointcut控制流中所有连接点的功能。0.cflow的用法假如你想捕获在程序控制流程内遇到的所有连接点,这些连接点都在某一个特定的连接点之后,你可以考虑使用cflow。什么是程序控制流?程序控制流就是程序执行过程中的每一行代码,准确的说是每行代码编译后的字节码。一个方法的控制流包括方法中的每一行代码,...

2018-05-09 13:39:20

AspectJ——切入点语法(5)之限制连接点的作用域

限制连接点的作用域在定义切入点的时候,我们经常遇到的需求是:基于所关注的程序作用域,限制捕获连接点的范围。本节将介绍within以及withincode的用法。within可以指定切入点的作用域在包中或者类中,withincode可以通过方法签名限制连接点的作用域在方法中。0.捕获特定类中的所有连接点首先,我们使用within(TypePattern)切入点来捕获特定类中的所有...

2018-05-08 13:49:47

AspectJ——切入点语法(4)之捕获属性上的连接点

捕获属性上的连接点AspectJ提供了get(Signature)和set(Signature)切入点的形式,来捕获可能发生在类属性上的任何访问和修改。这也是AspectJ的一个比较受争议的特性,因为它会有效地破坏类的封装性,特别是当把被监视的属性声明为protected或者private时。所以这两个属性可以提供强大的手段来通知类,但是必须小心地使用它们。0.捕获对属性的访问...

2018-05-07 21:10:30

AspectJ——切入点语法(3)之捕获类和对象构造上的连接点

捕获类和对象构造上的连接点在Java中,一个类在实例化之前要经过三个步骤:装载、连接、初始化。装载即通过类型的完全限定名,产生一个代表该类型的二进制数据流,解析这个二进制数据流为方法区内的内部数据结构,并且创建一个表示该类型的java.lang.Class类的实例。连接即Java虚拟机为类变量分配内存,设置默认的初始值,并且解析变量。初始化主要完成对静态变量的初始化、静态块执行等工作,Java...

2018-05-07 19:38:20

AspectJ——切入点语法(2)之捕获异常处理上的连接点

捕获异常处理上的连接点在Java中抛出异常时,会将其向上传递给调用链,直到它被try/catch块中的catch语句处理,或者它到达Java运行库并在控制台上引发一条出错的消息。如果捕获到Java异常,就会把该异常作为一个对象传递给相应的catch语句,在其中处理该异常。使用切面可以捕获异常的处理,其应用的场景可以是:除了catch块的正常异常处理行为之外,使用切面还需要做某些事情;或者干...

2018-05-06 17:08:31

AspectJ——切入点语法(1)之捕获方法上的连接点

捕获方法上的连接点0.捕获方法调用在调用具有特定签名的方法时,你想捕获它,可以使用call(Signature)切入点,它的语法是:pointcut[切入点名字](参数列表):call(<可选的方法修饰符>[返回类型][类名].[方法名]([参数类型]))注意三点:1.call(Signature)是在方法调用上触发通知,其环境是调用类。2.Si...

2018-05-05 22:54:58

AspectJ——简介以及在IntelliJ IDEA下的配置

0.AspectJ简介在上篇文章【Spring——AOP(1)之Spring1中的配置】中,简要介绍了AOP(Aspect-OrientedProgramming,面向切面编程)的概念,并介绍了AOP中的一些术语,最后通过使用Spring1中编写切面、配置切面的方式讲解了一个案例。本节我们介绍AspectJ框架,学习AspectJ框架是因为Spring2以后的AOP开发中引入了很多Aspec...

2018-05-01 15:40:08

Spring——AOP(1)之Spring1中的配置

AOP介绍AOP(Aspect-OrientedProgramming),即面向切面编程,作为面向对象(OOP,Object-OrientedProgramming)的一种补充,广泛应用于处理一些具有横切性质的系统级服务,比如安全性检查、日志记录、事务管理等。在OOP中,我们以类(class)作为基本单元,而AOP中的基本单元是Aspect(切面)。定义AOP术语1.切面...

2018-04-15 14:44:51

Spring——装配Bean

基本装配在Spring容器内拼凑Bean叫做装配。装配Bean的时候,需要告诉哪些Bean以及容器如何使用依赖注入将它们配合在一起。使用XML装配XML是最常见的Spring应用系统配置源。几种Spring容器都支持使用XML装配Bean,包括:XmlBeanFactory:调用ClassPathResource载入上下文定义文件(比如applicationContext...

2018-03-12 22:36:39

Spring——ApplicationContext & Bean的生命周期

关于ApplicationContext和BeanFactory如果使用ApplicationContext,则配置的Bean如果scope属性是singleton,那么当容器被加载时,这些Bean就会被实例化。好处是可以预先加载,速度快;缺点是耗内存。如果使用BeanFactory,则当你实例化该对象的时候,配置的Bean不会被马上实例化,当你使用的时候才被实例化。BeanFacotry...

2018-03-11 23:23:16

Spring——DI配合接口编程案例

体验一下Spring的DI配合接口编程,完成一个字母大小写转换的案例:步骤如下:1.创建一个接口ChangeLetterpublicinterfaceChangeLetter{//声明一个方法publicStringchange();}2.写两个实现类,分别实现大写转小写,和小写转大写:publicclassUpperLetterimpl...

2018-03-11 22:31:49

Spring——入门

Spring是什么?Struts是Web框架Hibernate是ORM框架,处于持久层Spring是容器框架,用于配置Bean,并维护Bean之间关系的一种框架。Spring中有一个非常重要的概念:Bean,Bean是Java中的任何一种对象,它可以是JavaBean、可以是Service,可以是Action,也可以是DAO重要的概念:IOC(控制反转,...

2018-03-11 16:23:02

Hibernate——对象标识符生成方法(主键增长策略)

Hibernate对象标识符(OID)Hibernate中的持久化对象对应数据库中的一张数据表,因此区分不同的持久化对象,在Hibernate中是通过OID(ObjectID,对象标识符)来完成的,从表的角度看,OID对应表的主键。从类的角度看,OID对应类的主键属性。对象标识符生成方法Hibernate中的主要对象标识生成策略很多,这里主要介绍9中标识符生成方法。其中包括7种标...

2018-03-10 21:48:24

Hibernate——关系映射之多对多

关系映射之多对多多对多的关系在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;Hibernate会为我们创建中间表,转换成两个一对多。经典案例:学生<–>选课,如下将学生选课关系用中间表来关联。这个案例在我们学习HQL语句的时候也用过,所以这里再简要介绍一下。更多的细节请参考【Hibernate——HQL语句】三个对象的do...

2018-03-10 20:20:25

Hibernate——关系映射之一对一

关系映射之一对一基于主键的一对一基于主键的一对一就是说:对于从表,它的主键就是它的外键。那么这个一对一关系就非常明确。经典案例:人<–>身份证,Person的id同时是IDCard的id我们建立项目HibernateOneToOne进行测试。两个domain对象以及它们的映射文件如下:Person对象以及映射文件:packagecom.ga...

2018-03-10 20:09:32

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!