spring2中文参考手册

合集下载

Spring2.5学习文档2

Spring2.5学习文档2

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技术参考手册

Springside技术参考手册

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官网在线学习文档翻译5

spring官网在线学习文档翻译5

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中文翻译

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,之间的依赖关系由容器使⽤的配置元素据所体现。

spring2

spring2

不过这类的用法和Struts结合太紧,如果要做单元测试起来 结合太紧, 不过这类的用法和 结合太紧 有点困难。 有点困难。
Wepull Information Service
Spring在web项目中配置的几种方式 在 项目中配置的几种方式
两者方式都是把Spring的WebApplicationContext放入到 的 两者方式都是把 放入到 web的ServeletContext中,在web项目里面只要能拿到 的 中 项目里面只要能拿到 ServeletContext的地方都能使用。这里需要注意的是两者 的地方都能使用。时候的 时候的key是不一样的。前者是 是不一样的。 放入 时候的 是不一样的 WebApplicationContext.ROOT_WEB_APPLICATION_C ONTEXT_ATTRIBUTE,后者是 后者是 ContextLoaderPlugIn.SERVLET_CONTEXT_PREFIX+M oduleConfig.getPrefix()。前者可以用 。 WebApplicationContextUtils在ServeletContext把 在 把 WebApplicationContext取出来。 取出来。 取出来
<servlet> <servlet-name>SpringContextServlet</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>

Spring参考手册

Spring参考手册

第一部分 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层服务器上的企业级程序—通常由互相协作的对象而形成的适当的应用程序。

Spring2

Spring2

Spring的AOP实现 Spring的AOP实现
• 由于Spring的代理基于 由于Spring的代理基于
ng.reflect.Proxy类实现,被代理的类 ng.reflect.Proxy类实现,被代理的类 需要有一个接口
切入点
• 切入点决定了一个特定类的特定方法是否
• BeanNameAware接口 BeanNameAware接口
– 当自定义JavaBean实现该接口,Spring创建该JavaBean 当自定义JavaBean实现该接口,Spring创建该JavaBean 对象时通过setBeanName设置其name/id 对象时通过setBeanName设置其name/id
自动装载
• 在Spring中各个类之间的关系是需要手动设 Spring中各个类之间的关系是需要手动设
置 而可以通过设置Bean元素的autowire属 而可以通过设置Bean元素的autowire属 性来将bean的属性设置成自动装载 性来将bean的属性设置成自动装载
自动装载
• byName----试图在容器中寻找和需要自动 byName----试图在容器中寻找和需要自动
切入点
<beans>
• 静态切入点
<bean id=“serviceTarget” class=“”/> <bean id=“adviceClass” class=“”/> <bean id=“PointcutAdvisor” class=“MatchMethodPointcutAdvisor”> <property name=“mappedName”> <value>method*</value> </property> <property name=“advice”> <ref bean=“adviceName”/> </property> setMappedName(String) <bean id=“maidService” class=“org.springframework.aop.framework.ProxyFactoryBean”> setMappedNames(String[]) <property name=“proxyInterfaces”> <value>serviceInterface</value> </property> <property name=“interceptorNames”> <list><value>adviceClas</value></list> </property> <property name=“target”> <value ref=“serviceTarget”/> </property> </bean> </beans>

SpringFrameworkAop参考手册中文版

SpringFrameworkAop参考手册中文版

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技术手册说明书

Spring 2.0技术手册说明书

图书基本信息书名:《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媒体关注与评论序对我来说,写书是一种想法的实现过程。

在JBUilder 中创建Spring的J2SE的应用

在JBUilder 中创建Spring的J2SE的应用

获得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 方法,以完成目标逻辑处理的功能。

spring中文API文档

spring中文API文档

这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进行修正。

文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发者以这一版本的文档为参考。

另:Spring Security 从2010-01-01 以后,版本控制从SVN 换成了GIT,我们在翻译文档的时候,主要是根据SVN 的变化来进行文档内容的比对,这次换成GIT 后,感觉缺少了之前那种文本比对工具,如果有对GIT 熟悉的朋友,还请推荐一下文本比对的工具,谢谢。

序言I. 入门1. 介绍1.1. Spring Security 是什么?1.2. 历史1.3. 发行版本号1.4. 获得Spring Security1.4.1. 项目模块1.4.1.1. Core - spring-security-core.jar1.4.1.2. Web - spring-security-web.jar1.4.1.3. Config - spring-security-config.jar1.4.1.4. LDAP - spring-security-ldap.jar1.4.1.5. ACL - spring-security-acl.jar1.4.1.6. CAS - spring-security-cas-client.jar1.4.1.7. OpenID - spring-security-openid.jar1.4.2. 获得源代码2. Security 命名空间配置2.1. 介绍2.1.1. 命名空间的设计2.2. 开始使用安全命名空间配置2.2.1. 配置web.xml2.2.2. 最小<http> 配置2.2.2.1. auto-config 包含了什么?2.2.2.2. 表单和基本登录选项2.2.3. 使用其他认证提供器2.2.3.1. 添加一个密码编码器2.3. 高级web 特性2.3.1. Remember-Me 认证2.3.2. 添加HTTP/HTTPS 信道安全2.3.3. 会话管理2.3.3.1. 检测超时2.3.3.2. 同步会话控制2.3.3.3. 防止Session 固定攻击2.3.4. 对OpenID 的支持2.3.4.1. 属性交换2.3.5. 添加你自己的filter2.3.5.1. 设置自定义AuthenticationEntryPoint2.4. 保护方法2.4.1. <global-method-security> 元素2.4.1.1. 使用protect-pointcut 添加安全切点2.5. 默认的AccessDecisionManager2.5.1. 自定义AccessDecisionManager2.6. 验证管理器和命名空间3. 示例程序3.1. Tutorial 示例3.2. Contacts3.3. LDAP 例子3.4. CAS 例子3.5. Pre-Authentication 例子4. Spring Security 社区4.1. 任务跟踪4.2. 成为参与者4.3. 更多信息II. 结构和实现5. 技术概述5.1. 运行环境5.2. 核心组件5.2.1. SecurityContextHolder, SecurityContext 和Authentication 对象5.2.1.1. 获得当前用户的信息5.2.2. UserDetailsService5.2.3. GrantedAuthority5.2.4. 小结5.3. 验证5.3.1. 什么是Spring Security 的验证呢?5.3.2. 直接设置SecurityContextHolder 的内容5.4. 在web 应用中验证5.4.1. ExceptionTranslationFilter5.4.2. AuthenticationEntryPoint5.4.3. 验证机制5.4.4. 在请求之间保存SecurityContext 。

Spring Security 5.1 中文 参考手册 中文文档

Spring Security 5.1  中文 参考手册 中文文档

Spring Security的许多公司用户都需要与不遵循任何特定安全标准的“传统”系统集成,而Spring Security很高兴能够与这样的系统“很好地发挥”。
无论身份验证机制如何,Spring Security都提供了一套深层次的授权功能。 有三个主要的感兴趣领域:授权Web请求,授权是否可以调用方法并授权访问单个域对象实例。 为帮助您理解这些差异,请分别考虑Servlet规范Web模式安全性,EJB容器托管安全性和文件系统安全性中的授权功能。 Spring Security在所有这些重要领域提供了深入的 功能,我们将在本参考指南的后面部分进行探讨。
人们使用Spring Security有很多原因,但是大多数人在找到Java EE的Servlet规范或EJB规范的安全特性后,都缺乏典型企业应用场景所需的深度。 在提到这些标准的同 时,认识到它们在WAR或EAR级别不可移植是很重要的。 因此,如果切换服务器环境,在新的目标环境中重新配置应用程序的安全性通常需要很多工作。 使用Spring
这些管理因素的非详尽清单将包括安全公告监控修补人员审查审计变更控制工程管理系统数据备份灾难恢复性能基准测试负载监控集中式日志记录事件响应程序等
Spring Security Reference
本帮助文档是 觉得烦死 整理--QQ:654638585 声明:
译 : Spring安 全 参 考
中文文档都是由软件翻译,翻译内容未检查校对,文档内容仅供参考。 您可以任意转发,但请至保留作者&出处(),请尊重作者劳动成果,谢谢!
2. Introduction
译 : 2.介 绍
2.1 What is Spring Security?
译 : 2.1什 么 是 Spring Security ?

SpringBoot官方文档中文版-2.构建系统

SpringBoot官方文档中文版-2.构建系统

SpringBoot官⽅⽂档中⽂版-2.构建系统前⾔这是 SpringBoot 官⽅⽂档中⽂翻译版系列第⼆篇⽂章。

上⼀篇是:根据官⽹的顺序,从构建系统,到将应⽤程序打包⽤于⽣产,是官⽹中这⼀章的内容,因为篇幅较长,故拆分成若⼲章节。

使⽤ SpringBoot 进⾏开发本节将更详细地介绍如何使⽤ Spring Boot。

它涵盖了构建系统、⾃动配置以及如何运⾏应⽤程序等主题。

我们还将介绍⼀些 Spring Boot 的最佳实践。

尽管 Spring Boot 没有什么特别之处(它只是您可以使⽤的另⼀个库),但是有⼀些建议,如果遵循这些建议,将使您的开发过程稍微容易⼀些。

如果您正在开始使⽤ Spring Boot,那么在深⼊本节之前,您可能应该阅读。

构建系统强烈建议您选择⽀持依赖项管理并能够使⽤发布到 “Maven Central” 存储库的构件的构建系统。

我们建议您选择 Maven 或 Gradle。

可以让Spring Boot 与其他构建系统(例如Ant)⼀起⼯作,但它们并没有得到很好的⽀持。

1. 依赖管理Spring Boot 的每个版本都提供了它所⽀持的依赖项列表。

实际上,您不需要在构建配置中为这些依赖项提供⼀个版本,因为 Spring Boot 会为您管理它。

当您升级 Spring Boot 本⾝时,这些依赖项也会以⼀致的⽅式升级。

提⽰:如果需要的话,您仍然可以指定⼀个版本并覆盖 Spring Boot 的建议。

这个列表包含了所有可以与 Spring Boot ⼀起使⽤的 Spring 模块,以及⼀个改进的第三⽅库列表。

该列表作为标准的材料清单(spring-boot-dependencies)可⽤,可以与 Maven 和 Gradle ⼀起使⽤。

警告:Spring Boot 的每个版本都与 Spring 框架的⼀个基本版本相关联。

我们强烈建议您不要指定它的版本。

2. Maven要了解如何使⽤ Spring Boot 与 Maven,请参阅 Spring Boot 的 Maven 插件的⽂档:⽂档 ( 和 )3. Gradle要了解如何在 Gradle 中使⽤ Spring Boot,请参考 Spring Boot 的 Gradle 插件的⽂档:⽂档 ( and )4. Ant可以使⽤ Apache Ant+Ivy 构建 Spring Boot 项⽬。

Spring框架参考文档-5.0.0-中文完整版

Spring框架参考文档-5.0.0-中文完整版

Spring框架参考文档-5.0.0-中文完整版AuthorsRod Johnson , Juergen Hoeller , Keith Donald , Colin Sampaleanu , Rob Harrop , Thomas Risberg , Alef Arendsen , Darren Davison , Dmitriy Kopylenko , Mark Pollack , Thierry Templier , Erwin Vervaet , Portia Tung , Ben Hale , Adrian Colyer , John Lewis , Costin Leau , Mark Fisher , Sam Brannen , Ramnivas Laddad , Arjen Poutsma , Chris Beams , Tareq Abedrabbo , Andy Clement , Dave Syer , Oliver Gierke , Rossen Stoyanchev , Phillip Webb , Rob Winch , Brian Clozel , Stephane Nicoll , Sebastien Deleuze版本号:5.0.0.RELEASECopyright ? 2004-2016Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.文档官网:https://docs.spring.io/spring/docs/5.0.0.RELEASE/spring-framework-reference/index.html现在官网的5.0.0已经在2017年9月28日出了release版,为此翻译了5.0.0版本(从4.3.10升级到此版本,如果还在使用4.3.10版本,请看本人的前一个版本),翻译前后历时15天,十多次的修改和校对。

spring中文教程pdf

spring中文教程pdf
从此开始,这本书伴随笔者度过了整整一个月的业余时间……..
这本书,也就是出自 Rod Johnson 的:
《Expert One-on-One J2EE Design and Development》
此书已经由电子工业出版社出版,译版名为《J2EE 设计开发编程指南》。
半年后,一个新的 Java Framework 发布,同样出自 Rod Johnson 的手笔,这自然 引起了笔者极大的兴趣,这就是 SpringFramework。
另外,笔者近来试图就日本、印度的软件开发模式进行一些调研。如果诸位可以赠阅日本、印度 软件研发过程中的需求、设计文档以供研究,感激不尽!
September 2, 2004 So many open source projects. Why not Open your Documents?
SpringFrameWork Developer’s Guide
文档说明
联络 xiaxin(at)
Version 0.6
(at) 为 email @ 符号
发布记录 版本 0.5 0.6
日期 2004.6.1 2004.9.1
内容。
OpenDoc 版权说明
本文档版权归原作者所有。 在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。 如需部分或者全文引用,请事先征求作者意见。 如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给 作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。
SpringFramework 实 际 上 是 Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。在 One-on-One 一书中,Rod Johnson 倡导 J2EE 实用主义的设计思想,并随书提供了一个初步的开发框架实现 (interface21 开发包)。而 SpringFramework 正是这一思想的更全面和具体的体现。 Rod Johnson 在 interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展 为一个更加开放、清晰、全面、高效的开发框架。

SpringBatch中文参考文档V3.0.6-1SpringBatch介绍

SpringBatch中文参考文档V3.0.6-1SpringBatch介绍

SpringBatch中⽂参考⽂档V3.0.6-1SpringBatch介绍1 Spring Batch介绍企业领域中许多应⽤系统需要采⽤批处理的⽅式在特定环境中运⾏业务操作任务。

这种业务作业包括⾃动化,⼤量信息的复杂操作,他们不需要⼈⼯⼲预,并能⾼效运⾏。

这些典型作业包括:基于时间的事件处理(例如:⽉底结算,通知或信函);重复的、数据量⼤的、业务逻辑规则错综复杂的定期任务(例如:保险盈利决策和利率调整);来⾃内外部不同应⽤系统的信息集成任务,这些信息需要进⾏格式化、校验,并通过事务的⽅式处理成为系统可⽤的记录。

批处理程序就是⽤来处理这种数以亿计的企业⽇常事务。

Spring Batch是⼀个轻量级的,全⾯的批处理框架,旨在帮助开发⼈员构建出健壮的⽤于处理⽇常事务的企业级批处理系统。

Spring Batch 构建于POJO和Spring框架,开发者容易上⼿,现有的优秀企业级服务也能融合进来。

Spring Batch不是⼀个调度框架。

当前开发市场上有许多优秀的企业级调度器,包括付费软件和开源软件,例如Quartz, Tivoli, Control-M等。

Spring Batch的设计意图不是来替换它们,⽽是配合这些调度器协同⼯作。

Spring Batch提供处理⼤数据的可复⽤的核⼼功能,包括⽇志/跟踪,事务管理,Job程序统计,job重启,job跳转和资源管理,它同时也提供先进的技术服务和特性,即通过优化和分区技术使得批处理作业达到⾼容量和⾼性能。

⽆论简单的,复杂的还是⾼容量的批处理任务都可以利⽤该框架的可扩展性来处理⼤量的信息。

1.1 背景当开源软件项⽬和相关的社区重点关注⽹络和基于SOA消息的体系框架时,java领域仍然缺少⼀个可复⽤的批处理框架,企业应⽤仍在当前的IT环境中处理这样的批处理事务。

标准化、可复⽤的批处理架构的缺失导致IT企业各⾃开发了⼀次性的、并只针对本企业内部系统的解决⽅案,⽆法复⽤。

springboot2.x基础教程:Swagger详解给你的接口加上文档说明

springboot2.x基础教程:Swagger详解给你的接口加上文档说明

springboot2.x基础教程:Swagger详解给你的接⼝加上⽂档说明相信⽆论是前端还是后端开发,都或多或少地被接⼝⽂档折磨过。

前端经常抱怨后端给的接⼝⽂档与实际情况不⼀致。

后端⼜觉得编写及维护接⼝⽂档会耗费不少精⼒,经常来不及更新。

其实⽆论是前端调⽤后端,还是后端调⽤后端,都期望有⼀个好的接⼝⽂档。

SpringBoot集成Swagger能够通过很简单的注解把接⼝描述清楚,⽣成可视化⽂档页⾯。

原⽣的Swagger-ui界⾯很粗糙,这⾥⽤替代。

⼀个好的HTTP接⼝⽂档描述写清楚接⼝的请求路径: QueryPath: /user/login写清楚接⼝的请求⽅法类型: GET/POST/DELETE/PUT写清楚接⼝的业务含义,使⽤场景写清楚接⼝的⼊参:参数描述、参数类型、参数结构、参数是否必传写清楚接⼝的返回类型:返回的数据结构,异常状况SpringBoot集成Swagger项⽬引⼊依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-ui</artifactId><version>2.0.4</version></dependency>SpringBoot关于Swagger配置把此Swagger配置粘⼊项⽬即可@EnableSwagger2@Configurationpublic class SwaggerConfig implements WebMvcConfigurer {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//这⾥改成⾃⼰的接⼝包名.apis(RequestHandlerSelectors.basePackage("vip.codehome.springboot.tutorials.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("SpringBoot教程接⼝⽂档")//标题.description("使⽤swagger⽂档管理接⼝")//描述.contact(new Contact("codehome", "", "dsyslove@"))//作者信息.version("1.0.0")//版本号.build();}//解决doc.html,swagger-ui.html 404问题@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}}Swagger的具体使⽤各个注解的作⽤@Api 放在类上介绍类的作⽤@ApiOperation 放在⽅法上介绍⽅法的作⽤@ApiImplicitParam介绍⼊参说明@ApiResponse介绍返回状态@ApiModel、@ApiModelProperty介绍⼊参是对象,返回是对象字段说明代码⽰例@RestController@Api(tags = "Swagger注解测试类")public class SwaggerUserController {@ApiOperation(value = "这是⼀个echo接⼝")@ApiImplicitParams({@ApiImplicitParam(name = "msg",value = "请求的msg参数",required = true,paramType = "query"),@ApiImplicitParam(name = "token",value = "请求的token",required = false,paramType ="header" )})@ApiResponses({@ApiResponse(code=200,message = "请求成功"),@ApiResponse(code=400,message="请求⽆权限")})@GetMapping("/echo")public String echo(String msg,@RequestHeader(name = "token") String token){return msg;}@PostMapping("/login")public R<UserInfoVO> login(@RequestBody LoginDTO loginDTO){UserInfoVO userInfoVO=new UserInfoVO();userInfoVO.setNickname("编程之家");userInfoVO.setToken("xxx");return R.ok(userInfoVO);}}@Data@ApiModelpublic class LoginDTO {@ApiModelProperty(value = "⽤户账号或者邮箱")String account;@ApiModelProperty(value = "⽤户密码")String passwd;@ApiModelProperty(value = "⽤户密码")String verifyCode;}接⼝⽂档效果这⾥访问的是http://localhost:8080/doc.html,knife4j-spring-ui还有相⽐原⽣还有更多强⼤的功能,⼤家⾃⾏发现。

SpringBootWebFlux2.1.7中文翻译文档

SpringBootWebFlux2.1.7中文翻译文档

SpringBootWebFlux2.1.7中⽂翻译⽂档1. 前⾔从⼀开始学习 Netty 到 rxjava、Rector,再到 java8 的 CompletableFuture,就深深的为响应式编程着迷,这种区别于传统的顺序式编程,没准未来能在编程世界开辟⼀⽚天地呢!然后接触到了 WebFlux 框架,也是充满了浓厚的兴趣,想好好琢磨⼀番,奈何中⽂资料实在太少,就打起了英⽂⽂档的主意,可惜英⽂⽔平实在捉急,总是看下⼀句,忘了上⼀句。

诶,要不咱⼀句句翻译出来吧,这样读起来就通顺了,顺便可以造福下后来学习者(想着翻译的东西要被⼈看,也是⼀份坚持的动⼒)。

翻译并没有逐字逐句去纠结,⼒求语义通顺,有理解错误的地⽅,还⿇烦⼤家指出,⼀起学习探讨。

另外,⽂中还补充了⼀些⾃⼰练习的 demo。

tips:翻译是⼀项提⾼英语和学习技能⼀举两得的事呀!2. WebFlux 简介Spring WebFlux 是 Spring 5.0 引⼊的新的响应式框架,区别于 Spring MVC,它不需要依赖Servlet API,它是完全异步⾮阻塞的,并且基于 Reactor 来实现响应式流规范。

Spring WebFlux 有两种表现形式:基于配置和基于注释。

基于注释的实现⽅式⾮常类似于 SpringMVC 模型,如以下实例:@RestController@RequestMapping("/users")public class MyRestController {@GetMapping("/\{user}")public Mono<User> getUser(@PathVariable Long user) {// ...}@GetMapping("/\{user}/customers")public Flux<Customer> getUserCustomers(@PathVariable Long user) {// ...}@DeleteMapping("/\{user}")public Mono<User> deleteUser(@PathVariable Long user) {// ...}}基于配置的实现⽅式,把路由和具体请求逻辑分离开,如以下实例:@Configurationpublic class RoutingConfiguration {@Beanpublic RouterFunction<ServerResponse> monoRouterFunction(UserHandler userHandler) {return route(GET("/\{user}").and(accept(APPLICATION_JSON)), userHandler::getUser).andRoute(GET("/\{user}/customers").and(accept(APPLICATION_JSON)), userHandler::getUserCustomers).andRoute(DELETE("/\{user}").and(accept(APPLICATION_JSON)), userHandler::deleteUser);}}@Componentpublic class UserHandler {public Mono<ServerResponse> getUser(ServerRequest request) {// ...}public Mono<ServerResponse> getUserCustomers(ServerRequest request) {// ...}public Mono<ServerResponse> deleteUser(ServerRequest request) {// ...}}WebFlux 是 Spring 框架的⼀部分,其中提供了详细信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 第二章.高层面概述
2.1. 简介
简单地说,Spring 是一个以控制倒置(Inversion of Control)原则为基础的轻量级框架。控制 倒置是一个用于“基于组件的体系结构”的设计模式,它将“判断依赖关系”的职责移交给容器,而 不是由组件本身来判断彼此之间的依赖关系。当在 Spring 内实现组件时, 容器“轻量级”的方面就 展现出来了:针对 Spring 开发的组件不需要任何外部库;而且, 容器是轻量级的,它避免了像 EJB 容器那样的重量级方案的主要缺点,例如启动时间长、测试复杂、部署和配置困难,等等。
/5team/springframework
Spring reference 中文版 1.0
VetoableChangeListeners 接口,从而提供订阅属性变化消息和否决属性变化通知的能力,而不需要 在目标类中加入额外的支持代码。最后,BeanWrapper 接口提供了按索引随机设置带索引属性(例如 类型为 List 或数组的属性)的支持。BeanWrapper 接口通常并不是直接在应用程序代码中使用,而 是由 DataBinder 接口和 BeanFactory 管理。
= name; } public Employee getManagingDirector() {
return this.managingDirector; } public void setManagingDirector(Employee managingDirector) {
} 下面的代码片断展示如何检索和操作 Companies 类和 Employees 类实例属性的几个例子。
Company c = new Company(); BeanWrapper bwComp = BeanWrapperImpl(c); // setting the company name... bwComp.setPropertyValue("name", "Some Company Inc."); // ... can also be done like this: PropertyValue v = new PropertyValue("name", "Some Company Inc.");
这一章首先介绍了轻量级容器的总体设计,随后将简单介绍 Spring 除 IoC 实现之外的特性。简 单说,这些特性包括:
* 内置 AOP 支持,例如在 EJB 容器之外提供声明式事务管理
/5team/springframework
Spring reference 中文版 1.0
下面的例子将使用 PropertyEditor,把 java.util.Date 对象转换为人们习惯的形式:
/** Details in this class are excluded for brevity */ /5team/springframework
Table 3.1. Examples of properties
表达式
说明
name
表示属性“name”,对应的方法是 getName()或者 isName()或者
setName()

表示属性“ account”的嵌套属性“name”,对应的方法是
getAccount().setName()或者 getAccount().getName()
this.managingDirector = managingDirector;
/5team/springframework
Spring reference 中文版 1.0
} }
public class Employee { private float salary; public float getSalary() { return salary; } public void setSalary(float salary) { this.salary = salary; }
一个对于 benas 包非常重要的概念是 BeanWrapper 接口及与之对应的实现(BeanWrapperImpl 类)。 如 JavaDoc 中所载,BeanWrapper 接口提供了设置和读取属性值、获得属性描述以及查询属性是否可 读写的功能。BeanWrapper 也提供了嵌套属性的支持,允许设置无限深度的子属性。同时,BeanWrapper 接口还允许你加入标准 JavaBeans 规范中的 PropertyChangeListeners 接口和
3.2.2. 使用 PropertyEditors 包转换属性
有时候,为了使用方便,我们需要以另一种形式展现对象的属性。例如,日期可以以一种更容易 阅读的形式表现出来,同时我们也会将人们熟悉的格式转换回原始的日期格式(或者使用一个更好的 办法:将所有用户偏好形式转换回统一的 java.util.Date 对象)。为了达到这一目的,我们可以编 写自定义编辑器,使其继承 java.beans.PropertyEditor 类型,并将自定义编辑器注册到 BeanWrapper 上。通过注册, BeanWrapper 将知道“如何把属性转换所需类型的信息”。请阅读 Sun 公司提供的 java.beans 包中 PropertyEditors 的 JavaDoc 获得进一步信息。
Spring Framework Reference 中文版
WORK IN PROGRESS!!!
版本: 1.0
/5team/springframework
Spring reference 中文版 1.0
1. 第一章.简介
1.1. 轻量级容器
这章内容没什么价值,需要修正
3.2. 使用 BeanWrapper 接口操作 Bean
对于 org.springframework.beans 包遵循 Sun 公司发布的 JavaBeans 标准。所谓“JavaBean”其 实就是一个 Java 类。不过,它必须拥有默认无参数构造器,并按照既定规则来命名属性——属性 prop 对应一个设置器 setProp(…)和读取器 getProp(…)。更多的关于 JavaBeans 的信息请查阅 Sun 公司 网站(/products/javabeans[/products/javabeans/]).
bwComp.setPropertyValue(v);
// ok, let's create the director and tie it to the company: Employee jim = new Employee(); BeanWrapper bwJim = BeanWrapperImpl(jim); bwJim.setPropertyValue("name", "Jim Stravinsky"); bwComp.setPropertyValue("managingDirector", jim); // retrieving the salary of the managingDirector through the company Float salary = (Float)bwComp.getPropertyValue("managingDirector.salary");
最近,许多人对我们所说的“轻量级容器”表现出兴趣。我们认为这是一个趋势。轻量级容器对 于 web 应用的意义尤为明显;但对于其他类型的应用(包括在 J2EE 环境中运行的应用和独立的应用) 来说,轻量级容器也有助于提高它们的复用程度,例如业务对象和数据访问对象(DAO)的复用。
什么是轻量级容器? EJB 可能是最好的反例:
考虑如下两个类: public class Company {
private String name; private Employee managingDirector; public String getName() {
return ; } public void setName(String name) {
Spring 的核心是 org.springframework.beans 包,为使用 JavaBeans 技术、按名检索对象及管 理对象间的关系而设计。beans 包及其子包提供的功能为使用 JavaBeans 技术的项目指定了一个基础 设施。
关于 beans 包,有三个重要的概念。首先,它提供了设置/读取 Javabeans 属性功能的 BeanWrapper 接口。第二个重要概念是 Bean 工厂。BeanFactory 是一个泛化工厂,具有实例化对象和管理不同对 象间关系的能力。BeanFactory 可以管理ory 是按照 bean 定义(BeanDefinition)来实例化对象的。BeanDefinition,顾名思义, 是你对 bean 的定义。BeanDefinition 不仅定义了 bean 的类结构、实例化的方式,还定义了 bean 在 运行时的合作者。这是第三个概念。这三个概念(BeanFactory, BeanWrapper and BeanDefinition) 将在下文详细讨论。
BeanWrapper 接口的这种工作方式多少就如它的名字所暗示的:对 bean 进行包装,然后对包装 后的 bean 加以操作,例如设置属性值、检索属性值等等。
3.2.1. 设置和读取基本属性及嵌套属性
设置和读取属性分别通过 setPropertyValue(s)方法和 getPropertyValue(s)方法来完成。为了 方便使用,这两个方法都有几个重载版本。有关这两组方法的详尽描述在 Spring 的 JavaDoc 中给出。 在这里,你有必要首先了解“标识对象的属性”的几种命名规则。下面是几个例子:
account[2]
表示带索引属性“account”的第三个元素。带索引属性可以是 array
相关文档
最新文档