昆明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实现方式

昆明java培训教你实现JSP页面跳转简易方法,120天后月薪过万

昆明Java培训告诉你java和大数据和互联网发展中起什么作用

昆明java培训:初学者学Java Script 5个小技巧

昆明java培训多久可以学会?120天教你成为java开发大神!

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货