您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 【翻译】spring配置全书(上)-JAVA程序员面试必看
-JAVA程序员面试必看【翻译】spring配置全书(上)关键字:spring2.5,spring配置文件作者简介:CraigWalls是Texas-based公司的软件开发人员,有着超过13年的开发经验,涉及的领域有通信,金融,零售,教育以及软件业等。他是SpringFramework的狂热拥护者,频繁的在当地localusergroups讨论组和相关会议上演讲Spring,并且他的Blog上也有很多关于Spring的内容。出版的著作有:SpringinAction,2ndEdition,2007XDocletinAction,2003他的Blog是:所参与的项目:CommittertoXDocletproject;OriginatorofPortletandSpringmodulesforXDoclet本手册主要是将分布于文档中的那些零散的配置文件部分统一成一个比较系统的整体。结合Spring文档一起查阅也许能节省你一些时间。不过,并不推荐你全部掌握;很多陌生的元素或标签只应用于特定场合。本手册英文版本可以在:下载。Spring配置全书关于Spring的配置SpringFramework总是不断的改变着Java企业开发的方向,它用一种松耦合的方式来配置和组装应用程序对象和业务对象,比以往的Java企业开发来的更加简洁。一旦你开发了基于Spring的应用程序,在Spring上下文配置的那些资源简直就是唾手可得。依赖注入是Spring容器的核心尽管SpringFramework可以做很多事,但依赖注入却是Spring容器提供的最基本的功能。任何稍微复杂一点的应用程序都至少由两个或两个以上的对象协作在一起,共同完成一些业务逻辑。以往的Java企业开发,每个对象都要自己去主动获得他们所引用(或依赖)的对象,才可正常运作。这将导致代码之间的紧耦合,难以测试。有了依赖注入后,对象所依赖的资源则可通过外部来获得。换句话说,对象所依赖的资源是按照它们的需要给注入进去的。对于基于Spring的应用程序来说,是Spring容器将这些对象所依赖的资源帮助实现注入依赖的。用XML来配置Spring到了Spring2.0,Spring鼓励你使用基于XMLScheme的配置方式来应用于你的系统,这比起过去基于DTD的方式要更加灵活。一个典型的Spring2.5配置文件至少拥有以下结构:Xml代码1.?xmlversion=”1.0”encoding=”UTF-8”?2.beansxmlns=””3.xmlns:xsi=””4.xsi:schemaLocation=”==_blank!--placeconfigurationdetailshere--8.9./beansBeans命名空间简介SchemaURI命名空间是Spring命名空间的核心,也是你配置Spring时使用最多的一个。根元素是beans,它不仅可以包含一个或多个bean子元素,而且还可以包含其它命名空间的元素,甚至在beans下你可以不配置任何bean子元素。SpringXML图表的一些约定SpringXML图通常使用以下符号来表示哪些元素是必选的,可选的以及它们之间的包含关系。Bean命名空间下的元素简介bean元素揭密虽然有很多XML元素可以用来配置Springcontext,但也许你用的最多的可能还是bean元素。因此,让你深入了解bean标签是十分必要的。Bean命名空间实例下面的SpringXML配置文件配置了两个beans,其中一个注入到另一个中去:Xml代码1.?xmlversion=”1.0”encoding=”UTF-8”?2.beansxmlns=””3.xmlns:xsi=””4.xsi:schemaLocation=”://”5.6.beanid=”pirate”class=”Pirate”7.constructor-argvalue=”LongJohnSilver”/8.propertyname=”map”ref=”treasureMap”/9./bean10.11.beanid=”treasureMap”class=”TreasureMap”/12.13./beans第一个bean的ID为“pirate”,类型为“Pirate”。它使用了构造函数注入,该构造函数带有一个String参数,在这个例子中参数的值为“LongJohnSilver”。另外,它的“map”属性引用了另一个叫“treasureMap”的bean,该bean是TreasureMap的一个实例。温馨提示:不要把你所有的beans都定义在一个XML文件中。一旦你的应用程序变得越来越复杂,在Spring的XML配置文件中定义的beans的数量一定让你印象深刻。也没有什么理由要把所有的beans都定义在一个XML配置文件中去。通过将所有的beans分别放在多个XML文件中,有助于你的Spring配置文件更易于管理。当应用程序上下文(applicationcontext)建立的时候,可以使用import元素将它们全部组装起来:Xml代码1.importresource=”service-layer-config.xml”/2.importresource=”data-layer-config.xml”/3.importresource=”transaction-config.xml”/Context命名空间简介SchemaURI在Spring2.5中,context命名空间主要用来提供多种applicationcontext特定的配置。它包括:支持基于annotation的配置方式,JMX以及领域对象(domainobject)的注入。Context命名空间元素简介Bean命名空间实例下面的Spring配置文件使用了context:component-scan用来自动注册“com.springinactin.service”包下的beans:Xml代码1.?xmlversion=”1.0”encoding=”UTF-8”?2.beansxmlns=””3.xmlns:xsi=””4.xmlns:context=””5.xsi:schemaLocation=”==_blank==_blank==_blank”9.10.context:component-scanbase-package=”com.springinac¬tion.service”/11.12./beans在上面的配置文件中,context:component-scan元素会自动扫描“com.springinaction.service”包下的类,并自动将那些标记有@Component,@Controller,@Repository,@Service或@Aspect.的类全部注册到Spring容器中。温馨提示:尽量为你的最终用户提供外部配置文件。将所有的配置都定义在Spring配置文件中并不推荐。你根本别指望应用程序的管理员或最终用户会去研究SpringXML然后搞懂数据库的配置和其它特定布署细节,你不会真打算靠他们吧?相反,使用外部配置文件,我们可以使用context:property-placeholder这么来做:Xml代码1.context:property-placeholderlocation=”file:////etc/pirate.properties”定义在/etc/pirate.properties属性文件中的那些键值对现在可以在Spring配置文件中大显身手啦:Xml代码1.beanid=”pirate”class=”Pirate”2.constructor-argvalue=”${pirate.name}”/3./beanAOP命名空间简介SchemaURI命名空间是用来在Springcontext中声明aspects,pointcuts和advice的。同样,使用@Aspectjannotation的话,也可以基于annotation方式来配置你的aop。使用aspects的话,可以定义被你多个程序切点使用(或织入)的功能。AOP命名空间元素简介AOP命名空间实例下面的Spring配置文件使用了aop命名空间来建一个aspect。Xml代码1.?xmlversion=”1.0”encoding=”UTF-8”?2.beansxmlns=”
本文标题:【翻译】spring配置全书(上)-JAVA程序员面试必看
链接地址:https://www.777doc.com/doc-5541607 .html