SpringFramework 实 际 上 是 Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。在 One-on-One 一书中,Rod Johnson 倡导 J2EE 实用主义的设计思想,并随书提供了一个初步的开发框架实现(interface21 开发包) 。而 SpringFramework 正是这一思想的更全面和具体的体现。Rod Johnson 在interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展
为一个更加开放、清晰、全面、高效的开发框架。
本文正是针对SpringFramework的开发指南, 讲述了 SpringFramework的设计思想以及在开发中的实际使用。同时穿插了一些笔者在项目实作中的经验所得。
Continue Reading »
Flash 是一种创作工具,设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash 可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用 Flash 创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的 Flash 应用程序。
Flash 特别适用于创建通过 Internet 提供的内容,因为它的文件非常小。Flash 是通过广泛使用矢量图形做到这一点的。与位图图形相比,矢量图形需要的内存和存储空间小很多,因为它们是以数学公式而不是大型数据集来表示的。位图图形之所以更大,是因为图像中的每个像素都需要一组单独的数据来表示。 要在 Flash 中构建应用程序,可以使用 Flash 绘图工具创建图形,并将其它媒体元素导入 Flash 文档。接下来,定义如何以及何时使用各个元素来创建设想中的应用程序。
Continue Reading »
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.bt285.cn/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问http://www.5q520.cn /index.jsp/ 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046/index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
Continue Reading »
当我第一次知道“重构”这个词时,直觉告诉我,这是一项非常重要的技术。因为程序员写代码,虽然越来越趋于工程化,但就程序本身,还是有艺术之美的存在的。曹雪芹先生写《红楼梦》,“批阅十载,增删五次”,留下了恢弘巨著;要写出一个比较优美经典的程序,同样需要精雕细琢,提高其质量,这就是重构。
我手头的这本《重构》,是Martin Fowler主笔的,另外有四位重构技术的专家级人物Kent Beck, John Brant, William Opdyke, Don Roberts也参与了最后几章的编写。这是一本与《设计模式》齐名的经典之作。Martin Fowler,除了是对象技术方面的专家外,还是UML和模式方面的专家。他撰写的Analysis Patterns、UML Distilled、Patterns of EntERPrise Application Architecture和Planning Extreme Programming几本书也广受赞誉。中国电力出版社出版的这本书,是由著名的侯捷先生和熊节先生翻译的。侯捷和熊节先生的翻译非常的到位,并保留了一些大家都能理解的、翻译了反而不通顺的英语单词(这好像是侯捷先生翻译的习惯),使正常水平的程序员阅读时毫无障碍。
Continue Reading »
即使拥有良好的工具和优秀技术,应用软件开发也是困难重重。应用开发往往牵扯到方方面面,每件事情都难以控制,而且,开发周期也很难把握(除非它的确是一个重量级的复杂应用,倒也有情可原)。Spring提供了一种轻量级的解决方案,用于建立“快装式企业应用”。在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库地解决方案。另外,Spring还有一个全功能的 MVC框架,并能透明的把 AOP 集成到你的软件中去。
你可以把Spring当作一个潜在的一站式企业应用。或者,把Spring看作一个标准开发组件,根据自己的需要,只取用它的部分组件使用而无需涉及其他。例如,你可以利用控制反转容器在前台的展现层使用Struts,还可以只使用 Hibernate集成编码 或是 JDBC抽象层 去处理数据存储。Spring被设计成(并将继续保持)无侵入性的方式,意味着应用几乎不需要对框架进行依赖(或根据实际使用的范围,将依赖做到最小)。
Continue Reading »
JavaFX的目标是为GUI开发人员提供一个完整的解决方案,包括一个新的声明式语言 JavaFX Script、优于JavaDoc的JavaFXDoc、新的图形API和其他格式资源文件的转换工具等等。Sun期望JavaFX能够成为Flex和 Silverlight的有力竞争者。
JavaFX学习资源并不是很多,以下是搜集到的一些。
Continue Reading »
JavaFX是一种全新的、基于Java技术、力求高效、定位于富内容市场的Sun产品。JavaFX脚本是一种高生产力的脚本语言,它能够使内容开发者建立富媒体并在Java环境中完成内容部署。作为一种声明式、静态类型编程语言,它具有第一级函数、声明式语法、列表推导和基于依赖关系的增量式求值等特性,并能够直接调用平台上的Java API。由于JavaFX脚本是静态类型的,因此它具有相同的代码结构、重用、封装特性(例如package、类、继承、分离编译、部署单元),这使其能够用于创建和维护大型Java程序。
在利用JavaFX开发过程中,总会遇到各种问题,总结了一下,希望对你有所帮助。
Continue Reading »