AOPのDelegateInterceptor
来源:互联网 发布:淘宝有假魅族手机吗 编辑:程序博客网 时间:2024/06/10 15:49
1.IBase.java
package examples.di;
public interface IBase {
public abstract void run();
}
2.Dummy.java
package examples.di;
public abstract class Dummy implements IBase {
}
3.Substance.java
package examples.di.impl;
import examples.di.IBase;
public class Substance implements IBase {
public void run() {
System.out.println(this);
}
}
4.AopDelegateClient.java
package examples.di.main;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
import examples.di.Dummy;
import examples.di.IBase;
public class AopDelegateClient {
private static String PATH = "Delegate.dicon";
public static void main( String[] args ){
S2Container container = S2ContainerFactory.create(PATH);
IBase base = (IBase) container.getComponent(Dummy.class);
for (int i = 0; i < 5; ++i) {
base.run();
}
}
}
5.Delegate.dicon
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>
<component class="examples.di.Dummy">
<aspect>
<component class="org.seasar.framework.aop.interceptors.DelegateInterceptor">
<initMethod name="setTarget">
<arg>new sample.aop.delegateinterceptor.Substance()</arg>
</initMethod>
</component>
</aspect>
</component>
</components>
运行结果为:
examples.di.impl.Substance@2bb514
examples.di.impl.Substance@2bb514
examples.di.impl.Substance@2bb514
examples.di.impl.Substance@2bb514
examples.di.impl.Substance@2bb514
如果改为:
<component class="examples.di.Dummy">
<aspect>
<component class="org.seasar.framework.aop.interceptors.PrototypeDelegateInterceptor">
<property name="targetName">"target"</property>
</component>
</aspect>
</component>
<component name="target" class="examples.di.impl.Substance" instance="prototype"/>
则运行结果为:
examples.di.impl.Substance@1617189
examples.di.impl.Substance@64f6cd
examples.di.impl.Substance@872380
examples.di.impl.Substance@2bb514
examples.di.impl.Substance@17d5d2a
生成了不同的实例
- AOPのDelegateInterceptor
- AOPのTraceInterceptor
- AOPのSyncInterceptor
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- C/C++相关问题整理(1)
- InnoSetup的使用教程(二)
- wo hi
- flash.ui.MouseCursor未定义问题(已解决)
- InnoSetup的使用教程(三)
- AOPのDelegateInterceptor
- 计算机每天开关机时间和开启系统日志
- Inno Setup安装和反安装ocx控件
- FTP文件传输协议
- Flex, Flash, AIR, ActionScript的关系(十分钟阅读试验)
- ATL问题集
- 多线程编程(2):线程的同步
- 西游公司与西游漫记
- ATL 实现IObjectSafety接口