spring2中文参考手册
- 格式:pdf
- 大小:425.25 KB
- 文档页数:32
1.IOC补充1.1.Bean继承在applicationContext.xml中配置bean时,可以指定abstract属性,其默认为false,如果为true,则容器就不会创建这个类的实例,这时就可以不指定class属性。
通常用于抽取公共的配置到一个不对应具体类的bean定义,此bean只用于被其他bean定义继承。
在声明bean时可以指定parent属性,其值为另一个bean的id或是name的值,表示把parrent中的定义继承过来,就像自己有这些定义一样。
注意:这只是在配置时方便,与实际的类结构无关。
在父Bean中定义的属性必须要在子Bean中出现。
如果子Bean中没有定义相关属性,将会导致容器初始化失败。
1.2.引用外部资源文件(在配置中使用变量)1.2.1.方式一:使用PropertyPlaceholderConfigurer类加载外部的资源文件一、applicationContext.xml中的配置:二、a.properties中的配置:1.2.2.方式二:使用<context:property-placeholder>加载外部的资源文件由于PropertyPlaceholderConfigurer字符过多,Spring给出来另一种引用外部资源文件的方式,要使用context命名空间:其他代码是一样的(略)1.2.3.使用说明1,未使用外部资源文件时,在注入的属性值中写类似于“${jdbcUrl}”的值将不会当成变量解析,而是当成一个字符串原样设置(就是“${jdbcUrl}”)。
2,在使用了外部资源文件时,在注入的属性值中写类似于“${jdbcUrl}”的值将会被当成变量解析,其值是从外部的properties中和system properties中获取,查找顺序如下:a)先找properties中的配置,如果找到就返回。
b)如果第一步没找到,就从system proeprties中查找(使用System.getProperty(String key)的值),如果找到就返回。
Springside 3.3.2 技术参考手册1. 总述∙架构风格简述1.概述技术框架选型以工业化大规模软件开发为原则---主流的选型、适宜团队分工的架构,同时照顾轻量级快速开发的需求,Java版的约定大于配置的风格。
)在SpringSide的官方主页上,写着SpringSide 3 中包含的主流组件:Spring 2.5 + Hibernate 3 + Struts 2 + JSP 2.0 + JQuery + JAX-WS 2 (by Apache CXF 2) +SpringSecurity 2.0。
不过,如果你认为和SpringSide 2 相比,升级的只是版本号,那么你就大错特错了。
像我这样从SpringSide 2过来的人,如果能够详细对比SpringSide 2 和SpringSide 3,对于我们理解SpringSide 3肯定更加有帮助。
下面的内容是我自己的一些体会,不正确的地方欢迎大家指正。
从主要的架构来,依然是那么几层,先设计数据库,再写Entity层,再写Dao层,再写Action,然后使用JSP表现出来,其中的Entity和Dao层和Hibernate紧密相关,Action是Struts的主要部分,Spring作为粘合剂,把这些东西连在一起,并提供了一些机制简化编写这些层的工作。
SpringSide就是这样一个大的粘合体,省去了我们自己很多的粘合工作。
从SpringSide 2 到SpringSide 3,这些工作得到进一步的简化,我们开发起来就更爽了。
我认为,我们的开发模式,主要经历了这样的简化过程:第一阶段,代码加一大堆的配置文件第二阶段,代码加少量的配置文件第三阶段,代码加基本上等于零的配置文件这些进步是如何实现的呢?从第一阶段到第二阶段,主要靠的是Annotation,把一些大量的配置工作转移到了Java代码中,那么从第二阶段到第三阶段怎么实现呢?都已经Annotation了,你还有什么办法让配置文件更少?想不到吧!我也想不到,直到我看了SpringSide 3生成的项目,我才知道还有一个好东西叫自动扫描。
spring官⽹在线学习⽂档翻译55. Aspect Oriented Programming with Spring(使⽤Spring进⾏⾯向切⾯编程)5.1. Introduction(⼊门)Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Aspects enable the modularization of concerns such as transaction management that cut across multiple types and objects. (Such concerns are often termed crosscutting concerns in AOP literature.)⾯向⽅⾯程序设计(AOP)通过提供另⼀种考虑程序结构的⽅法来补充⾯向对象程序设计(OOP)。
OOP中模块性的关键单元是类,⽽AOP中模块性的单元是⽅⾯。
⽅⾯⽀持关注点的模块化,例如跨多个类型和对象的事务管理。
(在AOP⽂献中,这样的关注点通常被称为横切关注点。
)One of the key components of Spring is the AOP framework. While the Spring IoC container does not depend on AOP, meaning you do not need to use AOP if you don’t want to, AOP complements Spring IoC to provide a very capable middleware solution.Spring的关键组件之⼀是AOP框架。
Spring中⽂翻译Spring IoC 容器1.1 IoC Container 和 Bean 介绍控制反转(Inversion of Control,IoC )也被称为依赖注⼊(Dependency Injection,DI)。
这是⼀个,多个对象仅仅通过构造器参数,⼯⼚⽅法参数,或者对象实例在被构造器初始化或者被⼯⼚⽅法创建返回之后设置属性来定义它们之间的依赖关系(对象之间的调⽤关系)的过程。
容器在它创建 bean 之后,注⼊之间的依赖项。
这个过程和 bean 本⾝通过使⽤类的直接构造器或服务定位机制,来控制其依赖项的实例化或位置,基本上是相反的(因此被称为控制反转)。
由⼈为的new新建对象,⾃⾏控制对象的实例和调⽤关系,转为容器控制。
控制⽅发⽣改变所以是控制反转org.springframework.beans和org.springframework.context是 Spring IoC 容器的基础BeanFactory接⼝,提供了管理任何类型对象的⾼级配置机制ApplicationContext是BeanFactory的⼀个⼦接⼝。
补充更简单与 Spring 的 AOP 特性集成信息资源处理(⽤于国际化)事件发布应⽤层特定的上下⽂。
(例如WebApplicationContext在 Web 应⽤程序中的使⽤)简单的说,BeanFacotry提供了配置框架和基础功能。
ApplicationContext增加了更多的企业特定的功能。
ApplicationContext是BeanFactory的⼀个完整的超集。
在 Spring 中,构成应⽤程序主⼲并且被 Spring IoC 容器所管理的,被称为 beans。
⼀个 bean 是被 Spring IoC 容器实例化,组装和管理的⼀个对象。
不然,bean 仅仅只是你应⽤程序中众多对象中的⼀个。
Beans,之间的依赖关系由容器使⽤的配置元素据所体现。
第一部分 Spring框架的概述Spring框架是一个轻量级的解决方案和为构建企业级应用程序潜在的一站式服务。
然而,Spring是模块化的,允许你只使用那些你需要的部分,而忽略其他部分。
你可以在使用Struts时用Spring的IoC 容器,但你也可以只使用Hibernate 集成代码或JDBC抽象层。
Spring框架支持声明式事务管理、通过RMI或web服务远程访问你的逻辑,还有多种方式处理数据的持久化。
它还提供一个全能的MVC框架,并且能将AOP移植进你的软件。
Spring被设计为非侵入式的,意味着你的逻辑代码完全不必依赖于此框架。
虽然一些基于数据访问技术和Spring的库会存在于你的集成层(例如数据访问层),但是你的其他代码很容易隔离这些依赖。
1.开始使用Spring这篇手册提供了关于spring框架的详细信息,不仅有全面的特性,还有一些关于spring包含的潜在的概念(例如“依赖注入”)的背景知识。
如果你才刚刚开始,也许你应该从低级版的"Getting Started" 手册开始,从bbb://spring.io.访问。
为了更容易消化,这篇手册是专注于任务式。
2.Spring框架的介绍Spring框架是一个支持开发Java应用程序而提供全面的基础设施的Java平台,Spring处理基础部分从而你可以专注于你的应用。
spring 让你能够通过POJOs和向POJOs应用无侵入的企业服务就可以构建你的应用。
这些不仅能应用到Java SE而且还能应用到Java EE.一些作为一个开发者能够使用spring平台优势的例子●使Java方法可以执行数据库事务而不用去处理事务API●使本地Java方法可以执行远程过程而不用去处理远程API●使本地Java方法可以拥有管理操作而不用去处理JMXAPI●使本地Java方法可以执行消息处理而不用去处理JMSAPI2.1 依赖注入和控制反转Java应用程序——一个宽松的专业术语,小到一个Appletes大到运行在n层服务器上的企业级程序—通常由互相协作的对象而形成的适当的应用程序。
Spring Framework Aop参考手册中文版6.2. @AspectJ 支持"@AspectJ"使用了Java 5的注解,可以将切面声明为普通的Java类。
AspectJ 5发布的AspectJ project中引入了这种@AspectJ风格。
Spring 2.0 使用了和AspectJ 5一样的注解,使用了AspectJ 提供的一个库来做切点(pointcut)解析和匹配。
但是,AOP在运行时仍旧是纯的Spring AOP,并不依赖于AspectJ 的编译器或者织入器(weaver)。
使用AspectJ的编译器或者织入器(weaver)的话就可以使用完整的AspectJ 语言,我们将在第 6.8 节“在Spring应用中使用Aspec tJ”中讨论这个问题。
6.2.1. 启用@AspectJ支持为了在Spring配置中使用@AspectJ aspects,你必须首先启用Spring对基于@AspectJ aspects的配置支持,自动代理(autoproxying)基于通知是否来自这些切面。
自动代理是指Spring会判断一个bean是否使用了一个或多个切面通知,并据此自动生成相应的代理以拦截其方法调用,并且确认通知是否如期进行。
通过在你的Spring的配置中引入下列元素来启用Spring对@AspectJ的支持:<aop:aspectj-autoproxy/>我们假使你正在使用附录 A, XML Schema-based configuration所描述的schema支持。
关于如何在aop的命名空间中引入这些标签,请参见第 A.2.6 节“The aop schema”如果你正在使用DTD,你仍旧可以通过在你的application context中添加如下定义来启用@AspectJ支持:<beanclass="org.springframework.aop.aspectj.annotation.AnnotationAwareAspe ctJAutoProxyCreator" />你需要在你的应用程序的classpath中引入两个AspectJ库:aspectjweaver.jar 和 aspectjrt.jar。
图书基本信息书名:《Spring 2.0技术手册》13位ISBN编号:978712103985010位ISBN编号:7121039850出版时间:2007-4出版社:电子工业出版社作者:林信良页数:430版权说明:本站所提供下载的PDF图书仅提供预览和简介以及在线试读,请支持正版图书。
更多资源请访问:内容概要真的可以编辑?作者简介林信良,(网络化名良葛格),台湾大学电机工程学系毕,台升阳阳教育训练技术顾问、台湾升阳教育训练专业讲师;著作《Java学习笔记》、《Spring技术手册》、《Spring2.0技术手册》,译作《Ajax 实战手册》。
个人网站:/Gossip/index.html。
书籍目录目录导 读I第1章 认识Spring11.1 术语介绍21.2 控制反转(Inversion of Control)41.3 依赖注入(Dependency Injection)91.4 接下来的主题11第2章 Spring入门132.1 第一个Spring程序142.1.1 下载、设置Spring142.1.2 准备Spring设计环境(使用Eclipse)162.1.3 编写第一个Spring程序202.1.4 编写第二个Spring程序242.1.5 Spring 2.0的XML设置272.2 安装、使用Spring IDE282.2.1 安装Spring IDE282.2.2 使用Spring IDE302.3 接下来的主题33第3章 Bean、消息、事件353.1 Bean基本管理363.1.1 BeanFactory、ApplicationContext 363.1.2 Bean的识别名称与别名393.1.3 Bean的实例化403.1.4 Bean的scope423.1.5 Bean的生命周期433.1.6 Bean定义的继承453.2 Bean的依赖设置483.2.1 Type 2 IoC、Type 3 IoC483.2.2 依赖的值设置与参考523.2.3 自动绑定553.2.4 集合对象603.2.5 Spring 2.0的标签683.2.6 Lookup Method Injection713.3 Bean高级管理733.3.1 非XML定义文件的配置方式743.3.2 Aware相关接口763.3.3 BeanPostProcessor783.3.4 BeanFactoryPostProcessor813.3.5 PropertyPlaceholderConfigurer813.3.6 PropertyOverrideConfigurer833.3.7 CustomEditorConfigurer843.4 资源、消息、事件883.4.1 资源的取得883.4.2 解析文字消息893.4.3 监听事件923.4.4 事件传播933.5 接下来的主题95第4章 Spring AOP974.1 AOP入门984.1.1 从代理机制初探AOP984.1.2 AOP观念与术语1054.1.3 Spring AOP1084.2 Advices1094.2.1 Before Advice1094.2.2 After Advice1134.2.3 Around Advice1154.2.4 Throw Advice1174.3 Pointcut、Advisor1214.3.1 NameMatchMethodPointcutAdvisor 1214.3.2 RegExpMethodPointcutAdvisor1244.3.3 ControlFlowPointcut1264.3.4 Pointcut接口1294.3.5 Pointcut交集、并集操作1314.4 Introduction1324.4.1 IntroductionInterceptor1334.4.2 DelegatingIntroductionInterceptor1374.5 Autoproxing1414.5.1 BeanNameAutoProxyCreator1414.5.2 DefaultAdvisorAutoProxyCreator1424.6 Spring 2.0的AOP支持1444.6.1 Before Advice:基于XML Schema1444.6.2 Before Advice:基于Annotation1474.6.3 Spring 2.0的Pointcut定义1494.6.4 After Returning Advice:基于XML Schema 1514.6.5 After Returning Advice:基于Annotation 1534.6.6 After Throwing Advice:基于XML Schema 1554.6.7 After Throwing Advice:基于Annotation 1584.6.8 Around Advice:基于XML Schema 1594.6.9 Around Advice:基于Annotation1614.7 接下来的主题162第5章 JDBC、事务支持1635.1 Spring持久层入门1645.1.1 Spring的DAO支持1645.1.2 DataSource注入1695.1.3 DataSource置换1755.2 JDBC支持1775.2.1 使用JdbcTemplate1775.2.2 执行与更新JdbcTemplate1795.2.3 JdbcTemplate查询1835.2.4 JdbcTemplate的Lob支持1855.2.5 以对象方式进行操作1875.2.6 DataFieldMaxValueIncrementer1925.2.7 Spring 2.0的NamedParameterJdbcTemplate 1925.2.8 Spring 2.0的SimpleJdbcTemplate1945.3 JDBC事务管理1965.3.1 Spring对事务的支持1975.3.2 JDBC编程事务管理1995.3.3 JDBC声明事务管理2025.3.4 事务的属性介绍2065.3.5 TransactionAttributeSource、TransactionAttribute 2085.3.6 Spring 2.0声明式事务管理:基于XML Schmea 2125.3.7 Spring 2.0声明式事务管理:基于Annotation2145.4 接下来的主题216第6章 Hibernate与Spring2196.1 Hibernate入门2206.1.1 简介Hibernate2206.1.2 下载、设置Hibernate2226.1.3 第一个Hibernate程序2246.2 在Spring中整合Hibernate2316.2.1 SessionFactory 注入2326.2.2 HibernateTemplate2356.2.3 HibernateTemplate的Lob支持2376.2.4 Hibernate编程事务管理2406.2.5 Hibernate声明事务管理2426.3 接下来的主题248第7章 Spring Web MVC框架2497.1 Spring Web MVC入门2507.1.1 使用Eclipse Web Tools Platform2507.1.2 第一个Spring Web MVC程序2537.1.3 WebApplicationContext2577.1.4 Handler Mapping2617.1.5 Handler Interceptor2637.1.6 Controller继承架构2667.1.7 ModelAndView2697.1.8 View Resolver2717.1.9 Exception Resolver2747.2 Controller实现类2757.2.1 AbstractController2757.2.2 MultiActionController与ParameterMethodNameResolver 2777.2.3 MultiActionController与PropertiesMethodNameResolver 2807.2.4 ParameterizableViewController2847.2.5 AbstractCommandController2857.2.6 AbstractFormController2887.2.7 SimpleFormController2897.2.8 AbstractWizardFormController2947.2.9 ThrowawayController3007.3 搭配Controller的相关类3017.3.1 实现Validator3017.3.2 使用PropertyEditor3047.3.3 文件上传3097.4 接下来的主题313第8章 View层方案、Web框架整合3158.1 结合JSTL与Spring标签3168.1.1 结合JSTL3168.1.2 标签3198.1.3 数据绑定的几个方法3228.1.4 标签3258.1.5 标签3278.1.6 Spring 2.0的form标签3328.2 其他View技术3348.2.1 以Tiles为例3348.2.2 自制View Class3398.3 整合Struts框架3428.3.1 第一个Struts程序3428.3.2 在Struts中整合Spring3468.4 整合JSF框架3518.4.1 第一个JSF程序3518.4.2 在JSF中整合Spring3588.5 接下来的主题362第9章 API封装3639.1 远程3649.1.1 RMI3649.1.2 Hessian、Burlap3689.1.3 Http Invoker3719.2 邮件3739.2.1 简单邮件3739.2.2 HTML邮件3749.2.3 内嵌图片或附件3769.3 任务计划3799.3.1 使用TimerTask3799.3.2 使用MethodInvokingTimerTaskFactoryBean 3819.3.3 使用Quartz3839.3.4 使用MethodInvokingJobDetailFactoryBean 3879.4 接下来的主题389第10章 项目:Spring在线书签39110.1 程序概观39210.1.1 架构规划39210.1.2 采用技术39310.1.3 功能概述39410.2 Model设计39410.2.1 UserDAO39410.2.2 BookmarkDAO39810.2.3 SimpleMail40110.3 View设计40210.3.1 Tag Files40210.3.2 注册网页40410.3.3 登录网页40710.3.4 会员网页40910.3.5 加入书签网页41010.3.6 改变、取回密码网页41110.3.7 首页重新导向41310.4 Controller设计41410.4.1 RegisterController41410.4.2 LoginController41810.4.3 MemberController42010.4.4 ForgotController 42410.5 配置设置42610.5.1 设置web.xml 42610.5.2 设置web-config.xml 42710.5.3 设置model-config.xml 42910.6 接下来的主题430媒体关注与评论序对我来说,写书是一种想法的实现过程。
获得Spring的系统库包文件1、下载Spring的系统库包(1)进入到Spring的下载包有两种,一种是带有“with-dependencies”名称的,这种包含了Spring常用到的第三方包,比如Hibernate、aopalliance、jakarta-commons等。
这里就使用了这种包,可以省却查找第三方包的麻烦。
(2)解压其*.zip文件(3)所需要的*.jar包在其\dist和\lib目录下,包含有所需要的库●dist/spring.jar●lib/jakarta-commons/commons-logging.jar●lib/log4j/log4j-1.2.9.jar(4)参考文档解压这个包,可以在 docs\reference目录下找到Spring 的参考手册,有html和pdf两种格式。
如果你的英文不太好,可以看看Spring中文论坛翻译的1.1版本的中文版(pdf格式)。
这个参考手册就是入门的不二法宝。
(5)Spring中的主要的*.jar包文件的作用(注意:不同的版本可能会由差别!)2、将Spring的系统库包文件添加到JBuilder中(1)主要涉及spring.jar、commons-logging.jar和log4j-1.2.9.jar在JBuilder 中创建Spring的J2SE的应用1、新建一个J2SE 的 Project(1)名称为SpringJ2SEApp(2)不需要服务器的设置2、在该Project中添加一个应用的主类名称为SpringApplication,包名称为springj2seapp删除所产生的Java Swing的窗口类只需要主类package springj2seapp;public class SpringApplication{public SpringApplication(){}public static void main(String[] args){new SpringApplication();}}执行该J2SE应用,以观察是否有错误(只要能够正常执行就可以)3、构建Spring基础代码(1)添加一个接口Action该Action 接口定义了一个execute 方法,在我们示例中,不同的Action 实现提供了各自的execute 方法,以完成目标逻辑处理的功能。