昆明java培训
达内昆明广州春城路

18487146383

热门课程

经典的基于代理的AOP实现方式

  • 时间:2016-10-21
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训的老师今天给大家讲经典的基于代理的AOP实现方式。

经典的基于代理的AOP

1.创建通知:定义一个接口

public interface Sleepable{

void sleep();

}

然后写一个Human类,他实现了这个接口

public Human implements Sleepable{

public void sleep(){

System.out.println("睡觉中...!");

}

}

2.编写一个SleepHelper类,它里面包含了睡觉的辅助工作,用AOP术语来说它就应该是通知

public class SleepHelper implements MethodBeforeAdvice,AfterReturningAdvice {

public void before(Method method, Object[] arguments, Object target)

throws Throwable {

System.out.println("睡觉前");

}

public void afterReturning(Object rturnValue, Method method, Object[] arguments,

Object target) throws Throwable {

System.out.println("睡觉后");

}

}

然后在spring配置文件中进行配置:

<!--被代理目标对象-->

<bean id="Human" class="cn.happy.dao.Human"></bean>

<bean id="SleepHelper" class="cn.happy.aop.SleepHelper"></bean>

//定义切点的常用的两种方式:1)使用正则表达式2)使用AspectJ表达式,

//这里用正则表达式

<!--顾问-->

<bean id="BeforAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">

<property name="advice" ref="BeforAdvice"></property>

<property name="pattern" value=".*l.*g.*"></property>

</bean>

<!--代理对象-->

// ProxyFactoryBean是一个代理,我们可以把它转换为

//proxyInterfaces中指定的实现该interface的代理对象

<bean id="serviceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="target" ref="Human"></property>

<property ame="interceptorNames" value="BeforAdvisor"></property>

</bean>

代理类

public class StuTest {

public static void main(String[] args) {

//通过ClassPathXmlApplicationContext实例化Spring的上下文

ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

//通过ApplicationContext的getBean()方法,根据id来获取Bean的实例

Sleepable s=(Sleepable)context.getBean("Human");

s.sleep();

}

}

了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:Java培训:Struts2的配置文件
下一篇:使用AspectJ的注解AOP实现方式

“因材施教,分级培优”十问十答

达内举办“2016授课讲师资格认证培训“,不断提升教学品质

达内牵手猿圈科技,打造技能测评、学习、就业一站式服务

毕业三年之内能转行学编程吗?

选择城市和中心
贵州省

广西省

海南省

台湾