说句实话,现在有些难以言说的郁闷和沮丧. 觉得很无奈,很...
请人帮忙做ppt和英语文档时,就会发现更多的沟通困难. 真的是很头痛沟通问题. 现在发现,世界上最简单的问题,就是自己.最难的问题,就是沟通.
当然,有时有些问题也很尖锐地提醒了自己,有些细节,自己也还没想明白.
可是,多数,是自己已经解决了的问题,要去说服人家明白很难.
今天继续学习,发现了iteye上还有一些做web gis的. 有一个叫giswalker,, 还有一个是http://sqj820123.iteye.com/. 其实,我这个,和gis没太多真正关系,但看一些他们的东西,还是觉得很受益. 那个giswalker对待技术的探讨态度,和天凉,等一样,都是很open,我很欣赏的那种.
还学习到一个人写的java web开发的框架问题的文章,解了我一些惑.转载:
http://www.iteye.com/topic/1015992#2072707
进行Java Web应用软件开发,一般可以采用3种方式。
第一种是“自力更生”,从零开始,包括软件系统架构和底层工具一切都靠自己来实现。
第二种是“洋务运动”的“工具框架”开发方法,即自己设计软件系统架构,但是同时选用一些底层工具类的“工具框架”来配合自己搭建的架构进行开发。这类“工具框架”的典型代表有Struts 2, Hibernate 3等等。
第三种是“拿来主义”的“范例框架”开发方法,即自己不再独立设计系统架构和底层工具,而是选择一个已经将系统架构和底层工具类库等子框架都整合好,并提供范例模块的成熟的“范例框架”,直接参考范例框架上的范例模块,并使用范例框架整合好的底层工具类库等子框架,进行定制化开发自己的项目。这类“范例框架”包括AppFuse, Spring Roo, Spring Side, Play, Seam等。
实践证明,第三种“范例框架”开发方法,是最快速高效的。因为这将大大缩短软件开发的“起步”过程,提高敏捷软件开发的首次迭代的质量,并让今后的开发工作能建立在一系列前人已经摸索出来的“最佳实践”的基础之上。
要使用“范例框架”开发方法,有必要回顾一下Java Web应用的开发框架。在Java Web应用开发领域,软件开发框架十分丰富。如果把Java Web应用开发的架构按照软件系统的三层模型来分层,可以分为表示层、业务层和数据层这3层。表示层负责显示应用的结果,业务层负责处理业务逻辑,数据层负责存取数据库。每一层都有相应的软件开发框架。
2000年3月,Apache Struts开源项目开始启动。Struts是运用MVC Model 2较早并且为大多数Java Web开发人员所熟悉的Java Web应用开发框架。
其他运用MVC Model 2模式的开源项目也相继发展起来,比如另一个开源项目OpenSymphony,于2002年推出了比Struts技术更先进的名为Webwork的Java Web应用开发框架。
2008年,上述两个开源项目Struts和Webwork进行了合并,推出了一个名为Struts 2的新框架。Struts 2框架实现了上述“三层模型”的表示层和业务层的一些功能,不妨把这类框架称为Web应用框架。由于Struts推出时间早,Struts 2框架是目前国内外Web应用框架中名气最大的。其他常用的通用Web应用框架还包括Apache Tapestry和JavaServer Faces。
Java是面向对象的语言,在进行Java Web应用开发,存储数据到数据库(即持久化persistence)时,免不了要在数据层进行对象-关系映射(Object-relational mapping, ORM)。一些框架完成了上述基于ORM的持久化工作,其中最有名的是Hibernate。这类框架可以称为ORM持久化框架。其他常用的ORM持久化框架还包括:iBATIS和Java Persistence API (JPA)。
一些通用开发框架也相继推出,如2003年发布的Spring Framework。Spring Framework的兴起缘于Sun公司的EJB 1.1至2.1的设计缺乏灵活性,不便于测试而广受批评这样的背景之下。Spring Framework最大的优势,是实现了依赖注入(Dependency Injection,DI)和面向方面的编程(Aspect-oriented programming, AOP)。DI使得对象的实例化不再由程序控制,而是由Spring Framework容器来控制,这样会使得模块之间的耦合度降低,更加容易测试。AOP能够把一些模块所共有的通用功能(如日志、安全、事务)抽象出来集中处理,这能减少开发人员的工作强度,让他们能更加关注业务逻辑,而不是上述通用功能。
由于上述框架数量繁多,要把它们有机地整合起来,在一个项目中充分发挥它们应有的作用,也是一件复杂的事情。一些开源框架就开始做框架整合的工作,整合工作除了把表示层、业务层和数据层的框架组合起来之外,一般还提供若干项目骨架(project skeleton)或范例(archetype),内含如用户管理、权限管理这样的通用功能、一些范例模块和代码自动生成工具。这类框架可以称之为范例框架(Archetype Framework)。范例框架中发展较早的是AppFuse,于2003年推出了1.0版本。最近发展起来的范例框架是Spring Roo,于2009年推出了1.0版本。国内常用的范例框架还包括中国工程师自己创建的Spring Side。其他常用范例框架还包括:JBoss Seam和Play Framework。
下表列出了上述Java Web开发框架的相关信息。
软件开发框架 初始版本时间/版本号 最近版本时间/版本号 框架类型
==================================================================================
Spring Framework 2003.06 2010.10.29/3.0.5 通用开发框架
Play Framework 2008.02 2011.04.13/1.2 范例框架
AppFuse 2003.11.30/1.0 2011.04.04/2.1 范例框架
Spring Roo 2009.12/1.0.0.RELEASE 2011.04.13/1.1.3.RELEASE 范例框架
Spring Side 2006.08.07/1.0 2010.09.15/3.3.4 范例框架
Jboss Seam 2005.09 2011.03.31/3.0.0.Final 范例框架
Hibernate 2001 2011.04.06/3.6.3.Final ORM持久化框架
iBATIS 2002 2010.12.31/3.0.4 ORM持久化框架
JPA 2006.05.11/1.0 2009.12.10/2.0 ORM持久化框架
Struts 2000.05 2010.12.20/2.2.1.1 Web应用框架
JSF 2004.03.11/1.0 2009.06.28/2.0 Web应用框架
Apache Tapestry 2000.01 2011.03.30/5.2.5 Web应用框架
分享到:
相关推荐
+----+----+----+----+----+----+----+ | | a | b | i | d | # | +----+----+----+----+----+----+----+ | A | A' | | | | # | +----+----+----+----+----+----+----+ | A' | | | A | | | | +----+----+----+----+--...
插件名称:Add-nofollow-to-XFN 插件功能:在WordPress后台的"链接" - "添加新链接"中的"链接关系(XFN)"中增加一个"nofollow"选项,安装插件后效果如下: 安装方法: 下载插件压缩包,解压后将 "Add-nofollow-to...
通过这些文件,用户可以学习如何操作这些分析器,了解LR和LALR分析器的工作原理,并深入理解first集和follow集在解析过程中的应用。 总之,这个压缩包提供的资源可以帮助我们深入理解LR和LALR分析器的工作机制,...
《PyPI官网下载:ligo_followup_advocate-0.0.12-py3-none-any.whl》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了大量预打包的Python软件包,方便用户下载和安装。标题中的"ligo_followup_...
Kubernetes分布式部署教材,不要因为文档名称是英文的,其实内容全是中文版,而且是非常好的pdf文档。
Detecting potential hucksterism in meta-analysis using a follow-up fail-safe test fSyrhO/Ogy in the Schools Volume 29. April 1992 DETECTING POTENTIAL HUCKSTERISM IN META-ANALY SIS USING A FOLLOW...
通过"Follow_ Follow"的标签,我们可以理解这份资料注重的是连续性和渐进式的学习体验,让学习者能够跟随课程的节奏,逐步深化理解和技能。 在"压缩包子文件的文件名称列表"中,虽然具体文件名未给出,但我们可以...
资源分类:Python库 所属语言:Python 资源全名:ligo-followup-advocate-1.1.dev1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
nofollow是链接的HTML标签属性,站长和SEO人员可以通过这个属性来告诉搜索引擎不要追踪此网页上的链接,或不要追踪某个指定的链接, 这些或这个链接并不是本网站所推荐的...链接一旦使用nofollow之后,就不会导出权重了
TikTok-意见-博特初学者视频-Windows可用如果您是初学者,请在此存储库中星标,请关注我,并在电子邮件上向我发送屏幕截图,我将向您发送视频,其中将向您展示解决错误和执行操作所需的操作让它起作用。...
这可能包括一个程序,用户输入文法,程序自动计算First、Follow、FirstVT和LastVT,或者是一些已计算好的集合供学习和参考。 了解First集和Follow集的概念以及如何计算它们对于编写编译器至关重要,因为这些集合...
在编译原理中,"first集"和"follow集"是两种重要的概念,它们主要用于分析和构造词法分析器(也称为扫描器或分词器)以及语法分析器(如LL解析器或LR解析器)。这里提供的资料是关于Java版的first集和follow集实现,...
follow-me-install-kubernetes-cluster:和我一步步部署kubernetes
华为作为全球领先的通信设备制造商,对5G波束管理进行了深入研究,并在文档“5G-Beamforming-Follow-up-25-09-2018_MANAGEMENT_Follow_huawei_bea”中详细阐述了相关理念和实践。这个文档可能包含了华为对于5G波束...
标题中的"button-follow-the-mouse.zip_Follow_ Follow"似乎是一个关于编程的项目,特别是与图形用户界面(GUI)交互有关。在这个项目中,我们关注的是一个按钮元素,它的行为被编程为根据鼠标的移动而改变位置。...
如果你打算学习 CMake,"Awesome-CMake" 提供了一个很好的起点。 "Awesome-CMake" 是一个开源项目,收集了丰富的 CMake 相关资源,可以帮助你快速上手并深入理解 CMake 的各种用法。该项目通常包含以下几类内容: ...
npm install -g follow-redirect-url 为您的项目安装: npm install -save follow-redirect-url 回到顶部 用法 CLI: follow https://bit.ly/2X7gCIT 模块: 第一个参数是url字符串。 'use strict' ; const...
LL1语法分析c++实现-first集-follow集-分析表-分析栈.doc
|-------+------+------+------+------+------+------| | S | ->a | ->^ | ->(T)| | | | | T | ->S N2| ->S N2| ->S N2| | | | | N2 | | | | ->ε | ->, S N2| | 从分析表中可以看出,对于每个非终结符,在当前输入...