很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。
- 内容介绍
- 文章标签
- 相关推荐
本文共计646个文字,预计阅读时间需要3分钟。
首先,我们定义一个接口`Sleepable`,用于表示可以被休眠的实体:
javapublic interface Sleepable { void sleep();}
然后,我们创建一个实现该接口的类`Person`:
javapublic class Person implements Sleepable { @Override public void sleep() { System.out.println(Person is sleeping.); }}
接下来,我们使用AOP来定义休眠时的通知(Advice):
javapublic class SleepAdvice implements Advice { @Override public void execute() { System.out.println(Before person sleeps.); }}
现在,我们定义一个`Advisor`,它将引用`Advice`:
javapublic class SleepAdvisor implements Advisor { @Override public void setAdvice(Advice advice) { this.advice=advice; }
@Override public void execute() { advice.execute(); }
private Advice advice;}
最后,我们创建一个`Person`对象,并使用`Advisor`来执行休眠:
javapublic class Main { public static void main(String[] args) { Person person=new Person(); SleepAdvice advice=new SleepAdvice(); SleepAdvisor advisor=new SleepAdvisor(); advisor.setAdvice(advice);
advisor.execute(); person.sleep(); }}
输出结果为:
Before person sleeps.Person is sleeping.
1、实现方式不同< aop:aspect>定义切面时,只需要定义一般的bean就行,而定义< aop:advisor>中引用的通知时,通知必须实现Advice接口。
下面我们举例说明。
首先,我们定义一个接口Sleepable和这个接口的实现Human,代码如下:
public interface Sleepable {
public void sleep();
}
public class Human implements Sleepable {
@Override
public void sleep() {
System.out.println("我要睡觉了!");
}
}
下面是< aop:advisor>的实现方式:
//定义通知
public class SleepHelper implements MethodBeforeAdvice,AfterReturningAdvice{
@Override
public void before(Method arg0, Object[] arg1, Object arg2)
throws Throwable {
System.out.println("睡觉前要脱衣服!");
}
@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
Object arg3) throws Throwable {
System.out.println("起床后要穿衣服!");
}
}
//aop配置
< aop:advisor>大多用于事务管理。 例如: < aop:aspect>大多用于日志,缓存 其实,不管是< aop:advisor>还是< aop:aspect>最终的实现逻辑是一样的。
本文共计646个文字,预计阅读时间需要3分钟。
首先,我们定义一个接口`Sleepable`,用于表示可以被休眠的实体:
javapublic interface Sleepable { void sleep();}
然后,我们创建一个实现该接口的类`Person`:
javapublic class Person implements Sleepable { @Override public void sleep() { System.out.println(Person is sleeping.); }}
接下来,我们使用AOP来定义休眠时的通知(Advice):
javapublic class SleepAdvice implements Advice { @Override public void execute() { System.out.println(Before person sleeps.); }}
现在,我们定义一个`Advisor`,它将引用`Advice`:
javapublic class SleepAdvisor implements Advisor { @Override public void setAdvice(Advice advice) { this.advice=advice; }
@Override public void execute() { advice.execute(); }
private Advice advice;}
最后,我们创建一个`Person`对象,并使用`Advisor`来执行休眠:
javapublic class Main { public static void main(String[] args) { Person person=new Person(); SleepAdvice advice=new SleepAdvice(); SleepAdvisor advisor=new SleepAdvisor(); advisor.setAdvice(advice);
advisor.execute(); person.sleep(); }}
输出结果为:
Before person sleeps.Person is sleeping.
1、实现方式不同< aop:aspect>定义切面时,只需要定义一般的bean就行,而定义< aop:advisor>中引用的通知时,通知必须实现Advice接口。
下面我们举例说明。
首先,我们定义一个接口Sleepable和这个接口的实现Human,代码如下:
public interface Sleepable {
public void sleep();
}
public class Human implements Sleepable {
@Override
public void sleep() {
System.out.println("我要睡觉了!");
}
}
下面是< aop:advisor>的实现方式:
//定义通知
public class SleepHelper implements MethodBeforeAdvice,AfterReturningAdvice{
@Override
public void before(Method arg0, Object[] arg1, Object arg2)
throws Throwable {
System.out.println("睡觉前要脱衣服!");
}
@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
Object arg3) throws Throwable {
System.out.println("起床后要穿衣服!");
}
}
//aop配置
< aop:advisor>大多用于事务管理。 例如: < aop:aspect>大多用于日志,缓存 其实,不管是< aop:advisor>还是< aop:aspect>最终的实现逻辑是一样的。

