|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。条记|承继MixinsandIntroductions
良多人说道AOP,都觉得AOP就是截取器,切进点表达式,方面和完成(advices)。实在AOP
不止这些,别的一个很主要的功效在JBOSSAOP内里就是能够通明的给JAVA类传进接口。你
能够强迫一个类完成的接口,乃至你能够附加别的的类(mixins)来完成这个接口。就像C++
内里的多重集成。
引进
起首我们先容怎样强迫现有的类来完成你但愿它完成的接口。
起首的例子是让一个非可耐久化类完成耐久化才能。这对你将是非常有效的代码。
publicclassPOJO
{
privateStringfield;
}
要使它能够耐久化很复杂。
<introductionclass="POJO">
<interfaces>java.io.Serializable</interfaces>
</introduction>
下面的XML界说让AOP框架晓得你要把Serializable接口使用到你的类中。在这里你能够自在的
增添任何接口到你的类上,只必要增加interfaces元素就能够了。
假如你的类没有完成接口,AOP框架会增添完成的办法给你的类。这些办法会委派给AOP框架,但
必要利用截取器或完成来举行保护,不然NullPointerException会抛出。
MixinItUp
引进接口只是限定你,在完成接口时,假如你的类没有完成,就用外部的截取器或完成来完成。这
个中央就是Mixin要用的中央了。AOP框架同意你界说Mixin类来完成你要完成的接口。这个类的实例化
将在你初次挪用引进接口的办法的时分。
持续我们利用一个Externalizable类来完成java.io.Externalizable这个接口。
publicclassPOJO
{
privateStringfield;
}
要让他完成externalizable很复杂
<introductionclass="POJO">
<mixin>
<interfaces>
java.io.Externalizable
</interfaces>
<class>ExternalizableMixin</class>
<construction>newExternalizableMixin(this)</construction>
</mixin>
</introduction>
和下面一样这里只需求POJO完成一个接口,你本人能够在这里完成你的良多接口。
这里的class元素界说了完成接口externalizable的Mixin类,POJO来完成。
construction元素同意你利用JAVA代码来界说实例化Mixin类的时分你想用的办法。JBOSSAOP
会利用一个字段使实例化的POJO持有你的完成类ExternalizableMixin的句柄。这个字段会利用
你在construction里供应的代码来举行初始化。下面的this指的就是POJO本身的实例。
最初就是你必需完成Mixin类了。
publicclassExternalizableMixinimplementsjava.io.Externalizable
{
POJOpojo;
publicExternalizableMixin(POJOpojo)
{
this.pojo=pojo;
}
publicvoidreadExternal(ObjectInputin)throwsIOException,ClassNotFoundException
{
pojo.stuff2=in.readUTF();
}
publicvoidwriteExternal(ObjectOutputout)throwsIOException
{
out.writeUTF(pojo.stuff2);
}
}
多重承继MultipleInheritance
必要注重的一点就是Mixin使你的JAVA在外部完成了多重集成。固然在内部你不必要间接
在XML内里映照多重集成大概声明绑定,但实践上它使你完成了多年以来C++所具有的长处。
固然多半的专家都否决利用多重集成,但假如得当的利用笼统的Mixin类来完成多重集成
在良多中央对你的计划仍是很有匡助的。
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, |
|