小魔女 发表于 2015-1-18 11:32:53

发布一篇Hibernate+Spring+Struts扩大Struts

先谈谈我对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,这个工具是微软写的,。

兰色精灵 发表于 2015-1-30 14:18:53

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

冷月葬花魂 发表于 2015-1-31 15:54:04

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

分手快乐 发表于 2015-2-14 05:26:11

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

不帅 发表于 2015-2-18 11:44:03

是一种将安全性(Security)列为第一优先考虑的语言

愤怒的大鸟 发表于 2015-3-6 05:29:17

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

灵魂腐蚀 发表于 2015-3-11 05:20:14

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

若相依 发表于 2015-3-17 21:09:31

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

小女巫 发表于 2015-3-21 20:33:36

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

老尸 发表于 2015-3-24 12:20:06

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

活着的死人 发表于 2015-3-27 09:11:03

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

飘灵儿 发表于 2015-3-28 21:15:10

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

金色的骷髅 发表于 2015-4-11 15:11:44

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

再见西城 发表于 2015-4-21 22:06:31

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

因胸联盟 发表于 2015-4-24 04:33:50

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

海妖 发表于 2015-4-25 11:57:19

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

深爱那片海 发表于 2015-4-26 16:10:30

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

小魔女 发表于 2015-5-5 08:46:18

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

爱飞 发表于 2015-6-7 19:44:26

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页: [1]
查看完整版本: 发布一篇Hibernate+Spring+Struts扩大Struts