Spring MVC框架的高级配置(2)
Spring MVC框架的高级配置(2)[@more@]正如前面所提到的,这是您可能遇到的较简单的配置问题。更难的问题出现在当需要在不同服务器中进行不同的Bean连接的时候。这类问题常会出现在日常软件开发任务中。例如,假如您的产品有一个客户身份验证模块,可以对来自关系数据库或LDAP服务器中的用户进行身份验证。自然,这一身份验证模块可以使用抽象了特定版本库的Bean进行配置。如果您想改变不同应用程序部署中验证用户的方式,就需要在applicationContext.xml文件中进行不同的Bean连接。这种配置问题常见于在部署中有可配置特性的所有应用程序。
Spring MVC框架的高级配置(1)
Spring MVC框架的高级配置(1)[@more@]本文将为您提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例。本配置管理主题常被学术界所忽略,但是,这对于现实的web开发尤为重要。本主题并不直接关联任何具体的技术,因此,我们将从最基本的概念开始对这个问题进行说明。下面,我们将根据Spring MVC框架,为基于本技术开发的项目提供一系列的解决方案。 Spring配置 人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机器上配
Spring中Rod Johnson与“轮子理论”(2)
Spring中Rod Johnson与“轮子理论”(2)[@more@]而我们中国人呢,连发明轮子的技术都不会,只能膜拜,干瞪眼,等着学他们一个又一个的轮子使用方法。轮子越来越大,说明书越来越多,翻译的工作量越来越多,引进一个轮子的周期越来越长,越来越无法控制,实在不行了就只能骂两句解解气,然后一袋烟的功夫又硬着头皮回来乖乖继续学。我就有点呐闷,全国那么多的天才、大牛,咋就不发明一个我们自己的轮子玩玩,让老外也尝试一下把中文轮子说明书翻译成英文那种痛苦滋味。(晕,又做白日梦了,不好意思!)那么,从科学的态度分析,究竟该不该
Spring中Rod Johnson与“轮子理论”(1)
Spring中Rod Johnson与“轮子理论”(1)[@more@]本文对Spring Framework的创建者Rod Johnson先生的一些言论和著名的“轮子理论”进行了剖析,大家可以查看,是否认同作者的观点。 Rod Johnson是Spring Framework的创建者,也是Java和J2EE领域中的知名专家。Rod是Interface21公司的CEO,该公司是一家致力于提供专业级J2EE和Spring Framework服务的顾问公司。谈到Rod Johnson,除了Spring框架本身以外,他所著作的《Expert One-on-One J2EE Development without EJB》一书,其影响力比Spring框架本身还更加震撼。这里插播一段广告:《Expert
Spring框架与AOP思想的研究与应用(1)
Spring框架与AOP思想的研究与应用(1)[@more@]引言Aspect Oriented Programming(AOP)是近年来计算机技术中比较热门的话题之一。其发展历史从学术领域和研发机构的运用开始,目前流行的Spring应用程序框架将AOP思想融入了整个框架的设计开发与应用当中。使用Spring框架固然给我们的编程带来了好处与便利,但是同时存在着一个问题,对于初学者来说,所谓的“控制反转”,不是一个能够望文生义的好名称,“依赖注入”也是一样,也正是因为这样,不少初学者很难在短时间内理解和掌握这些名字和他们的用法,而要使用AOP的功能也需要理解AOP,也比
基于Spring框架的WebSphere应用开发(3)
基于Spring框架的WebSphere应用开发(3)[@more@]2.ContextLoaderServlet:需要配置<load-on-startup>使得它率先装载。真正装载Context的类是ContextLoader,上面两个类只是两种调用ContextLoader的不同途径。ContextLoader内部实际调用的是XmlWebApplicationContext,其缺省配置文件为/WEB-INF/applicationContext.xml。如果使用ContextLoaderListener,其在web.xml中的配置一般如下:<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> 如果使用ContextLoaderServ
基于Spring框架的WebSphere应用开发(2)
基于Spring框架的WebSphere应用开发(2)[@more@]2.2 MVC的选择虽然说MVC这种模式早在Java语言出现前就有了,但是这种模式在J2EE时代才大行其道,为广大Web应用开发者所接受。对于各种基于MVC的框架而言,其要解决的问题主要可以分为以下几部分:1.将Web页面中的输入封装成一个数据对象,比如像Struts的表单BEAN,Spring MVC中的命令类等。2.根据请求的不同,由负责分发的控制器来映射和调用相应的逻辑处理单元,并将上面的数据对象作为参数传入。3.逻辑处理单元完成相应的处理之后又把结果放入一个数据对象。4.在选择的展现界面中把返回
基于Spring框架的WebSphere应用开发(4)
基于Spring框架的WebSphere应用开发(4)[@more@]从上面配置我们可以得知,通过使用Spring,应用程序能够统一使用不同的数据源实现。如果使用环境发生变化,那么只需要修改Spring的配置文件即可。对于部署在WAS上的Web应用,在生产环境中推荐使用WAS实现的数据库连接池。一方面是因为连接池实现地比较完善。另一方面,使用WAS提供的数据库连接池可以很完善地支持JTA事务。3.2 使用WAS的JTAWeb应用程序在使用事务的时候常常会涉及一个事务类型的选择。是选择像JDBC事务这样的本地事务呢还是使用JTA支持的全局事务。这个与应用程序需要涉及到的
基于Spring框架的WebSphere应用开发(1)
基于Spring框架的WebSphere应用开发(1)[@more@]概览 轻量级的企业应用开发越来越受到广大J2EE应用开发者的追捧,而Spring框架又是轻量级容器的杰出代表。由于Spring的使用日渐广泛,因此已有许多基于WebSphere应用服务器(WAS)的应用采用了Spring框架。本文首先介绍使用Spring开发Web应用的基本问题,然后结合WebSphere应用服务器,讲述Spring应用如何结合容器提供的服务。文章目的是与大家一起探讨如何更好的采用Spring框架开发基于WebSphere应用服务器的应用。1、Spring框架的主要思想描述Spring框架的核心思想我们可以用两个字来描述,
J2EE中使用Spring AOP框架和EJB组件(5)
J2EE中使用Spring AOP框架和EJB组件(5)[@more@]在测试用例类的setUp()方法中,我们将使用baseTradeManager和yahooFeed组件的模仿对象来初始化StubPostProcessor,而这两个组件是使用jMock API创建的。然后,我们就可以创建ClassPathXmlApplicationContext(配置其使用BeanPostProcessor)来实例化一个tradeManager组件。产生的tradeManager组件将使用模仿后的依赖性。这种方法不仅允许孤立要测试的组件,还可以确保在Spring bean配置中正确定义通知。实际上,要在不模拟大量容器基础架构的情况下使用这样的方法来测试在EJB组件中实现的业务
J2EE中使用Spring AOP框架和EJB组件(6)
J2EE中使用Spring AOP框架和EJB组件(6)[@more@]组合和链接通知 我们已经使用了一个简单的拦截器通知来实现附加的逻辑,并且将其当作一个独立的组件进行了测试。当应该在不进行修改并且与其他组件没有附加耦合的情况下扩展公共执行流时,这种设计十分有效。例如,当价格已经发生变化时,如果需要使用JMS或JavaMail发送通知,我们可以在tradeManager bean的setPrice方法上注册另一个拦截器,并使用它来向相关组件通知有关这些变化的情况。在很多情况下,这些方面都适用于非功能性需求,比如许多AOP相关的文章和教程中经常用作“hello world”
J2EE中使用Spring AOP框架和EJB组件(3)
J2EE中使用Spring AOP框架和EJB组件(3)[@more@]此外还要注意,我们重写了setSessionContext()方法,以便告诉AbstractStatelessSessionBean跨所有EJB bean使用Sping应用程序上下文的单个实例。现在,可以在applicationContext.xml中声明一个tradeManager bean。基本上需要创建一个上面TradeDao的新实例,把从JNDI获得的TradeLocalHome实例传递给它的构造函数。下面给出了可能的定义:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd&q
J2EE中使用Spring AOP框架和EJB组件(4)
J2EE中使用Spring AOP框架和EJB组件(4)[@more@]完成这种实现并测试(在容器外部!)之后,就可以把它与其他组件进行集成。传统的做法是向TradeManager2Impl添加一些代码,以便检查getPrice()方法返回的值。这会使测试的次数至少增加一倍,而且要求为每个测试用例设定附加的先决条件。然而,如果使用Spring AOP框架,就可以更漂亮地完成这项工作。您可以实现一条通知,如果初始的TradeManager没有返回所请求符号的值,该通知将使用YahooFeed组件来获取价格(在这种情况下,它的值是null,但是也可能会得到一个UnknownSymbol异常)。要把通知
J2EE中使用Spring AOP框架和EJB组件(2)
J2EE中使用Spring AOP框架和EJB组件(2)[@more@]如果要在进行代码更改之后测试这样一个组件,那么在运行任何测试(通常是基于专用的容器内测试框架,比如Cactus或MockEJB)之前,必须要经过构建、启动容器和部署应用程序这整个周期。虽然在简单的用例中类的热部署可以节省重新部署的时间,但是当类模式变动(例如,添加域或方法,或者修改方法名)之后它就不行了。这个问题本身就是把所有逻辑转移到无格式Java对象中的最好理由。正如您在TradeManager1Impl代码中所看到的那样,大量的粘和代码把EJB中的所有内容组合在一起,而且您无法从围绕
我热爱Spring的五个理由(2)
我热爱Spring的五个理由(2)[@more@]3.依赖注入有助于可测试性通过一种称为依赖注入(Dependency Injection,DI)的设计模式,Spring极大地提高了可测试性。当客户依赖于某种依赖性(我们将称之为一个服务)时,您将创建客户的一个属性。Spring将创建客户和服务,然后把客户的属性设置为服务的值。换言之,Spring负责管理上下文中bean的生命周期,并解决依赖性。下面给出一个依赖注入的例子,没有使用Spring。我们首先来看客户(应用程序的基本元素):public class CommandLineView {private RentABike rentaBike;public CommandLineView
J2EE中使用Spring AOP框架和EJB组件(1)
J2EE中使用Spring AOP框架和EJB组件(1)[@more@]本文介绍了一种把J2EE应用程序中的EJB转换为Spring托管组件的方法,以及转换之后可以采用的强大技术。它还给出了几个实际的例子,说明如何借助于Spring的AOP框架、应用面向方面的方法来扩展J2EE应用程序,并在不修改现有代码的情况下实现新的业务需求。 快速发展的开发人员社区、对各种后端技术(包括JMS、JTA、JDO、Hibernate、iBATIS等等)的支持,以及(更为重要的)非侵入性的轻量级IoC容器和内置的AOP运行时,这些因素使得Spring Framework对于J2EE应用程序开发十分具有吸引力。Spring托
我热爱Spring的五个理由(1)
我热爱Spring的五个理由(1)[@more@]大约2年前,作者试用了在Hibernate站点上突出提到的Spring项目,觉得它是再适合不过的。因为它提供更好的优势、支持POJO编程、依赖注入有助于可测试性、反向控制简化了JDBC和在社区中的繁荣。 15年前6月的一个闷热的早晨,我爬到一艘老式的玻璃纤维皮划艇中。它是如此古老,以至于有些小碎片差点插到了我的手指中,而且划桨长度大约是传统激流划桨的两倍。我游泳的时候要多过划船,但是这没有关系。15年之后,我仍然对它着迷。大约2年前,我试用了在Hibernate站点上突出提到的Spring项目。我觉得它就像是
Java平台发展趋势展望(2)
Java平台发展趋势展望(2)[@more@]属性很可以还有一些针对属性访问的语法糖。一个建议是使用 -> 作为调用 getFoo 和 setFoo 的缩写。例如,不再使用如下代码:Point p = new Point();p.setX(56);p.setY(87);int z = p.getX(); 而是使用如下代码:Point p = new Point();p->X = 56;p->Y = 87;int z = p->X; 也有人建议用另外一些符号来代替 ->,包括 . 和 #。 将来,您有可能必须将 Point 类中的相关字段显式地标识为属性,如:public class Point {public int property x;public int property y;} 我个人对此并未产生什么深
Java平台发展趋势展望(1)
Java平台发展趋势展望(1)[@more@]Elliotte Rusty Harold 来自新奥尔良,Polytechnic 大学计算机科学的副教授,讲授 Java 和面向对象编程。他的 Web 站点Cafe au Lait 已经成为 Internet 上最流行的独立Java 站点之一,它的姊妹站点 Cafe con Leche 已经成为最流行的 XML 站点之一。2007 年将是载入史册的一年,Sun Microsystems 公司将于这一年在开源许可协议下发布 Java 开发包(JDK),从而放弃了对 Java™ 平台的统驭,将权力交给了 Java 开发人员社区!在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台
Sun加大JCOE建设 07年目标为80个
Sun加大JCOE建设 07年目标为80个[@more@]近日,由Sun公司组织的《JCOE如何构建中国的IT基础架构》媒体见面会上,香港Sun的吴光Wu Guang向笔者介绍,Sun公司将在2007年加大JCOE 合作伙伴的建设力度,今年的目标是有80个合作伙伴加入,虽然目前通过JCOE认证的合作只有60家左右,但Sun相信加入JCOE的好处可以吸引越来越多的合作伙伴。Sun Java顾问咨询服务 –JCOE简介Sun JCOE 是Sun独特的解决方案,能帮助客户建立企业内部的Java卓越中心(COE),该中心主要由SUN公司专家和客户企业自己的IT人员共同组成。每个Java卓越中心方案都将由SUN公司