引介增强:
要增强的接口:
public interface Run { public void startrun(String name); }
引介增强的切面类:
public class TalkAddRun extends DelegatingIntroductionInterceptor implements Run { public void startrun(String name) { // TODO Auto-generated method stub System.out.println(name + "also could run"); } @Override public Object invoke(MethodInvocation invocation) throws Throwable { // TODO Auto-generated method stub System.out.println(invocation.getMethod().getName() + "start.."); Object invoke = super.invoke(invocation); return invoke; } }
Spring的配置:
<bean id="talkAddRun" class="引介增强.TalkAddRun"></bean> <bean id="yinjie" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="interfaces"> <value>引介增强.Run</value> </property> <property name="proxyTargetClass" value="true"></property> <property name="interceptorNames"> <value>talkAddRun</value> </property> <property name="target"> <ref bean="helloSpeaker" /> </property> </bean>
测试代码:
IHello yinjie = (IHello) context.getBean("yinjie"); yinjie.hello("wang"); Run yin = (Run) yinjie; yin.startrun("wang");
这样获取的helloSpeaker的代理类就可以通过IHello将其强制转换为IHello的类了,也就是实现了IHello接口。
今天似乎明白了点文件的格式,每种文件都是以自己定义的方式定义二进制的格式,比如说文件头,body,就像协议一样,今天反编译javadbf-0[1].4.0.jar看了一下午没看懂里面读取文件二进制的方式,等有时间了一定弄懂它。
项目进展:添加了生成考场学生的所有标签的 功能。