|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
简介:
我看到良多项目中,开辟者完成了本人的MVC框架,并非由于他们想做同Struts基本分歧的工具,而是由于他们并没无意识到怎样扩大Struts。开辟本人的MVC框架能够取得全体的把持权,可是这也意味着必要良多资本来完成它(人力物力),在严重的日程布置下,偶然候这是不成能的。
Struts不单单是一个壮大的框架,同时它也是可扩大的。你能够以三种体例来扩大Struts。
1、PlugIn:假如你想在applicationstartup或shutdown的时分做一些营业逻辑的话,那就创立你本人的PlugIn类。
2、RequestProcessor:假如你想在哀求被处置的过程当中某个时候做一些营业逻辑的话,那末创立你本人的RequestProcessor类。好比说,在每次哀求实行之前,你能够扩大RequestProcessor来反省用户是不是上岸了和他是不是有权限往实行某个特定的action。
3、ActionServlet:假如你想在applicationstartup和shutdown的时分和哀求被处置的时分做某些营业逻辑,你也能够扩大ActionServlet类。不外你应该在PlugIn和RequestProcessor都不克不及办理你的需求的时分来利用ActionServlet。
在这篇文章中,我们将利用一个Struts使用的示例来树模怎样利用这三种体例来扩大Struts。示例程序的代码能够从http://www.onjava.com/onjava/2004/11/10/examples/sample1.zip下载。两个扩大Struts乐成的典范是Struts本身的Validation和Tiles框架。
我们假定你已对照熟习Struts框架而且晓得怎样利用它创立一个复杂的使用。假如你想晓得更多关于Struts的内容,请参考官方主页。
PlugIn
PlugIn是一个接口,你能够创立一个完成该接口的类,当applicationstartup或shutdown的时分做些事变。
例如说,我创立了一个利用Hibernate作为耐久层的web使用,我想当使用启动的时分就初始化Hibernate,如许子当我的web使用遭到第一个哀求的时分,Hibernate就已是设置好的而且可用的。同时我们想当application封闭的时分封闭Hibernate。我们能够用一个HibernatePlugIn来完成这个需求,经由过程以下的两步:
1、创立一个类完成了PlugIn接口:
publicclassHibernatePlugInimplementsPlugIn{
privateStringconfigFile;
//Thismethodwillbecalledatapplicationshutdowntime
publicvoiddestroy(){
System.out.println("EnteringHibernatePlugIn.destroy()");
//Puthibernatecleanupcodehere
System.out.println("ExitingHibernatePlugIn.destroy()");
}
//Thismethodwillbecalledatapplicationstartuptime
publicvoidinit(ActionServletactionServlet,ModuleConfigconfig)
throwsServletException{
System.out.println("EnteringHibernatePlugIn.init()");
System.out.println("valueofinitparameter"+
getConfigFile());
System.out.println("ExitingHibernatePlugIn.init()");
}
publicStringgetConfigFile(){
returnname;
}
publicvoidsetConfigFile(Stringstring){
configFile=string;
}
}
完成PlugIn接口的类必需完成两个办法:init()和destroy()。当applicationstartup的时分init()办法被挪用,当shutdown的时分destroy()办法被挪用。Struts还同意给你的PlugIn类传送初始化参数。为了传送参数,你必需在PlugIn类中为每个参数创立JavaBean式的setter办法。在我们的HibernatePlugIn类中,我会把configFile的name作为参数传出来,而不是硬编码到程序中。
2、在struts-config.xml中增加以下的代码来公告Struts有新的PlugIn:
<struts-config>
...
<!--MessageResources-->
<message-resourcesparameter="sample1.resources.ApplicationResources"/>
<!--Declareyourplugins-->
<plug-inclassName="com.sample.util.HibernatePlugIn">
<set-propertyproperty="configFile"value="/hibernate.cfg.xml"/>
</plug-in>
</struts-config>
<p>
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。 |
|