`
xinklabi
  • 浏览: 1608861 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

Spring Framework 开发参考手册

 
阅读更多

Spring Framework 开发参考手册

Authors

 

Rod Johnson, Juergen Hoeller, Alef Arendsen, Colin Sampaleanu, Rob Harrop, Thomas Risberg, Darren Davison, Dmitriy Kopylenko, Mark Pollack, Thierry Templier, Erwin Vervaet, Portia Tung, Ben Hale, Adrian Colyer, John Lewis, Costin Leau, Rick Evans

2.0

Copies 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.

 

Table of Contents

前言
1. 简介
1.1. 概览
1.2. 使用场景
2. Spring 2.0 的新特性
2.1. 简介
2.2. 控制反转(IoC)容器
2.2.1. 更简单的XML配置
2.2.2. 新的bean作用域
2.2.3. 可扩展的XML编写
2.3. 面向切面编程(AOP)
2.3.1. 更加简单的AOP XML配置
2.3.2. 对@AspectJ 切面的支持
2.4. 中间层
2.4.1. 在XML里更为简单的声明性事务配置
2.4.2. JPA
2.4.3. 异步的JMS
2.4.4. JDBC
2.5. Web层
2.5.1. Spring MVC的表单标签库
2.5.2. Spring MVC合理的默认值
2.5.3. Portlet 框架
2.6. 其他特性
2.6.1. 动态语言支持
2.6.2. JMX
2.6.3. 任务规划
2.6.4. 对Java 5(Tiger)的支持
2.7. 移植到Spring 2.0
2.7.1. 一些变化
2.7.1.1. Jar包
2.7.1.2. XML配置
2.7.1.3. Deprecated的类和方法
2.7.1.4. Apache OJB
2.7.1.5. iBatis
2.8. 更新的样例应用
2.9. 改进的文档
I. 核心技术
3. 控制反转容器
3.1. 简介
3.2. 容器和bean的基本原理
3.2.1. 容器
3.2.1.1. 配置元数据
3.2.2. 实例化容器
3.2.2.1. 组成基于XML配置元数据
3.2.3. 多种bean
3.2.3.1. 命名bean
3.2.3.2. 实例化bean
3.2.4. 使用容器
3.3. 依赖
3.3.1. 注入依赖
3.3.1.1. Setter注入
3.3.1.2. 构造器注入
3.3.1.3. 一些例子
3.3.2. 构造器参数的解析
3.3.2.1. 构造器参数类型匹配
3.3.2.2. 构造器参数的索引
3.3.3. bean属性及构造器参数详解
3.3.3.1. 直接量(基本类型、Strings类型等。)
3.3.3.2. 引用其它的bean(协作者)
3.3.3.3. 内部bean
3.3.3.4. 集合
3.3.3.5. Nulls
3.3.3.6. XML-based configuration metadata shortcuts
3.3.3.7. 组合属性名称
3.3.4. 使用depends-on
3.3.5. 延迟初始化bean
3.3.6. 自动装配(autowire)协作者
3.3.6.1. 设置Bean使自动装配失效
3.3.7. 依赖检查
3.3.8. 方法注入
3.3.8.1. Lookup方法注入
3.3.8.2. 自定义方法的替代方案
3.4. bean的作用域
3.4.1. Singleton作用域
3.4.2. Prototype作用域
3.4.3. 其他作用域
3.4.3.1. 初始化web配置
3.4.3.2. Request作用域
3.4.3.3. Session作用域
3.4.3.4. global session作用域
3.4.3.5. 作用域bean与依赖
3.4.4. 自定义作用域
3.5. 定制bean特性
3.5.1. Lifecycle接口
3.5.1.1. 初始化回调
3.5.1.2. 析构回调
3.5.2. 了解自己
3.5.2.1. BeanFactoryAware
3.5.2.2. BeanNameAware
3.6. bean定义的继承
3.7. 容器扩展点
3.7.1. 用BeanPostProcessor定制bean
3.7.1.1. 使用BeanPostProcessor的Hello World示例
3.7.1.2. RequiredAnnotationBeanPostProcessor示例
3.7.2. 用BeanFactoryPostProcessor定制配置元数据
3.7.2.1. PropertyPlaceholderConfigurer示例
3.7.2.2. PropertyOverrideConfigurer示例
3.7.3. 使用FactoryBean定制实例化逻辑
3.8. ApplicationContext
3.8.1. 利用MessageSource实现国际化
3.8.2. 事件
3.8.3. 底层资源的访问
3.8.4. ApplicationContext在WEB应用中的实例化
3.9. 粘合代码和可怕的singleton
3.9.1. 使用Singleton-helper类
4. 资源
4.1. 简介
4.2. Resource 接口
4.3. 内置 Resource 实现
4.3.1. UrlResource
4.3.2. ClassPathResource
4.3.3. FileSystemResource
4.3.4. ServletContextResource
4.3.5. InputStreamResource
4.3.6. ByteArrayResource
4.4. ResourceLoader
4.5. ResourceLoaderAware 接口
4.6. 把Resource作为属性来配置
4.7. Application context 和Resource 路径
4.7.1. 构造application context
4.7.1.1. 创建 ClassPathXmlApplicationContext 实例 - 简介
4.7.2. Application context构造器中资源路径的通配符
4.7.2.1. Ant风格的pattern
4.7.2.2. classpath*: 前缀
4.7.2.3. 其他关于通配符的说明
4.7.3. FileSystemResource 提示
5. 校验,数据绑定,BeanWrapper,与属性编辑器
5.1. 简介
5.2. 使用Spring的Validator接口进行校验
5.3. 从错误代码到错误信息
5.4. Bean处理和BeanWrapper
5.4.1. 设置和获取属性值以及嵌套属性
5.4.2. 内建的PropertyEditor实现
5.4.2.1. 注册用户自定义的PropertyEditor
6. 使用Spring进行面向切面编程(AOP)
6.1. 简介
6.1.1. AOP概念
6.1.2. Spring AOP的功能和目标
6.1.3. Spring的AOP代理
6.2. @AspectJ支持
6.2.1. 启用@AspectJ支持
6.2.2. 声明一个切面
6.2.3. 声明一个切入点(pointcut)
6.2.3.1. 切入点指定者的支持
6.2.3.2. 合并切入点表达式
6.2.3.3. 共享常见的切入点(pointcut)定义
6.2.3.4. 示例
6.2.4. 声明通知
6.2.4.1. 前置通知(Before advice)
6.2.4.2. 返回后通知(After returning advice)
6.2.4.3. 抛出后通知(After throwing advice)
6.2.4.4. 后通知(After (finally) advice)
6.2.4.5. 环绕通知(Around Advice)
6.2.4.6. 通知参数(Advice parameters)
6.2.4.7. 通知(Advice)顺序
6.2.5. 引入(Introductions)
6.2.6. 切面实例化模型
6.2.7. 例子
6.3. Schema-based AOP support
6.3.1. 声明一个切面
6.3.2. 声明一个切入点
6.3.3. 声明通知
6.3.3.1. 通知(Advice)
6.3.3.2. 返回后通知(After returning advice)
6.3.3.3. 抛出异常后通知(After throwing advice)
6.3.3.4. 后通知(After (finally) advice)
6.3.3.5. 通知
6.3.3.6. 通知参数
6.3.3.7. 通知顺序
6.3.4. 引入
6.3.5. 切面实例化模型
6.3.6. Advisors
6.3.7. 例子
6.4. AOP声明风格的选择
6.4.1. Spring AOP还是完全用AspectJ?
6.4.2. Spring AOP中使用@AspectJ还是XML?
6.5. 混合切面类型
6.6. 代理机制
6.7. 编程方式创建@AspectJ代理
6.8. 在Spring应用中使用AspectJ
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入
6.8.1.1. @Configurable object的单元测试
6.8.1.2. 多application context情况下的处理
6.8.2. Spring中其他的AspectJ切面
6.8.3. 使用Spring IoC来配置AspectJ的切面
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW)
6.9. 其它资源
7. Spring AOP APIs
7.1. 简介
7.2. Spring中的切入点API
7.2.1. 概念
7.2.2. 切入点实施
7.2.3. AspectJ切入点表达式
7.2.4. 便利的切入点实现
7.2.4.1. 静态切入点
7.2.4.2. 动态切入点
7.2.5. 切入点的基类
7.2.6. 自定义切入点
7.3. Spring的通知API
7.3.1. 通知的生命周期
7.3.2. Spring里的通知类型
7.3.2.1. 拦截around通知
7.3.2.2. 前置通知
7.3.2.3. 异常通知
7.3.2.4. 后置通知
7.3.2.5. 引入通知
7.4. Spring里的advisor(Advisor) API
7.5. 使用ProxyFactoryBean创建AOP代理
7.5.1. 基础
7.5.2. JavaBean属性
7.5.3. 基于JDK和CGLIB的代理
7.5.4. 对接口进行代理
7.5.5. 对类进行代理
7.5.6. 使用“全局”advisor
7.6. 简化代理定义
7.7. 使用ProxyFactory通过编程创建AOP代理
7.8. 操作被通知对象
7.9. 使用“自动代理(autoproxy)”功能
7.9.1. 自动代理bean定义
7.9.1.1. BeanNameAutoProxyCreator
7.9.1.2. DefaultAdvisorAutoProxyCreator
7.9.1.3. AbstractAdvisorAutoProxyCreator
7.9.2. 使用元数据驱动的自动代理
7.10. 使用TargetSources
7.10.1. 热交换目标源
7.10.2. 池化目标源
7.10.3. 原型目标源
7.10.4. ThreadLocal目标源
7.11. 定义新的通知类型
7.12. 更多资源
8. 测试
8.1. 简介
8.2. 单元测试
8.3. 集成测试
8.3.1. Context管理和缓存
8.3.2. 测试fixture的依赖注入
8.3.3. 事务管理
8.3.4. 方便的变量
8.3.5. 示例
8.3.6. 运行集成测试
8.4. 更多资源
II. 中间层数据访问
9. 事务管理
9.1. 简介
9.2. 动机
9.3. 关键抽象
9.4. 使用资源同步的事务
9.4.1. 高层次方案
9.4.2. 低层次方案
9.4.3. TransactionAwareDataSourceProxy
9.5. 声明式事务管理
9.5.1. 理解Spring的声明式事务管理实现
9.5.2. 第一个例子
9.5.3. 回滚
9.5.4. 为不同的bean配置不同的事务语义
9.5.5. <tx:advice/> 有关的设置
9.5.6. 使用 @Transactional
9.5.6.1. @Transactional 有关的设置
9.5.7. 插入事务操作
9.5.8. 结合AspectJ使用 @Transactional
9.6. 编程式事务管理
9.6.1. 使用 TransactionTemplate
9.6.2. 使用 PlatformTransactionManager
9.7. 选择编程式事务管理还是声明式事务管理
9.8. 与特定应用服务器集成
9.8.1. BEA WebLogic
9.8.2. IBM WebSphere
9.9. 公共问题的解决方案
9.9.1. 对一个特定的 DataSource 使用错误的事务管理器
9.10. 更多的资源
10. DAO支持
10.1. 简介
10.2. 一致的异常层次
10.3. 一致的DAO支持抽象类
11. 使用JDBC进行数据访问
11.1. 简介
11.1.1. Spring JDBC包结构
11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理
11.2.1. JdbcTemplate类
11.2.2. NamedParameterJdbcTemplate类
11.2.3. SimpleJdbcTemplate类
11.2.4. DataSource接口
11.2.5. SQLExceptionTranslator接口
11.2.6. 执行SQL语句
11.2.7. 执行查询
11.2.8. 更新数据库
11.3. 控制数据库连接
11.3.1. DataSourceUtils类
11.3.2. SmartDataSource接口
11.3.3. AbstractDataSource类
11.3.4. SingleConnectionDataSource类
11.3.5. DriverManagerDataSource类
11.3.6. TransactionAwareDataSourceProxy类
11.3.7. DataSourceTransactionManager类
11.4. 用Java对象来表达JDBC操作
11.4.1. SqlQuery类
11.4.2. MappingSqlQuery类
11.4.3. SqlUpdate类
11.4.4. StoredProcedure类
11.4.5. SqlFunction类
12. 使用ORM工具进行数据访问
12.1. 简介
12.2. Hibernate
12.2.1. 资源管理
12.2.2. 在Spring的application context中创建 SessionFactory
12.2.3. HibernateTemplate
12.2.4. 不使用回调的基于Spring的DAO实现
12.2.5. 基于Hibernate3的原生API实现DAO
12.2.6. 编程式的事务划分
12.2.7. 声明式的事务划分
12.2.8. 事务管理策略
12.2.9. 容器资源 vs 本地资源
12.2.10. 在应用服务器中使用Hibernate的注意点
12.3. JDO
12.3.1. 建立PersistenceManagerFactory
12.3.2. JdoTemplate和JdoDaoSupport
12.3.3. 基于原生的JDO API实现DAO
12.3.4. 事务管理
12.3.5. JdoDialect
12.4. Oracle TopLink
12.4.1. SessionFactory 抽象层
12.4.2. TopLinkTemplate 和 TopLinkDaoSupport
12.4.3. 基于原生的TopLink API的DAO实现
12.4.4. 事务管理
12.5. iBATIS SQL Maps
12.5.1. iBATIS 1.x和2.x的概览与区别
12.5.2. iBATIS SQL Maps 1.x
12.5.2.1. 创建SqlMap
12.5.2.2. 使用 SqlMapTemplate 和 SqlMapDaoSupport
12.5.3. iBATIS SQL Maps 2.x
12.5.3.1. 创建SqlMapClient
12.5.3.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport
12.5.3.3. 基于原生的iBATIS API的DAO实现
12.6. JPA
12.6.1. 在Spring环境中建立JPA
12.6.1.1. LocalEntityManagerFactoryBean
12.6.1.2. LocalContainerEntityManagerFactoryBean
12.6.1.3. 处理多个持久化单元
12.6.2. JpaTemplate 和 JpaDaoSupport
12.6.3. 基于原生的JPA实现DAO
12.6.4. 异常转化
12.6.5. 事务管理
12.6.6. JpaDialect
III. Web
13. Web框架
13.1. 介绍
13.1.1. 与其他web框架的集成
13.1.2. Spring Web MVC框架的特点
13.2. DispatcherServlet
13.3. 控制器
13.3.1. AbstractController 和 WebContentGenerator
13.3.2. 其它的简单控制器
13.3.3. MultiActionController
13.3.4. 命令控制器
13.4. 处理器映射(handler mapping)
13.4.1. BeanNameUrlHandlerMapping
13.4.2. SimpleUrlHandlerMapping
13.4.3. 拦截器(HandlerInterceptor)
13.5. 视图与视图解析
13.5.1. 视图解析器
13.5.2. 视图解析链
13.5.3. 重定向(Rediret)到另一个视图
13.5.3.1. RedirectView
13.5.3.2. redirect:前缀
13.5.3.3. forward:前缀
13.6. 本地化解析器
13.6.1. AcceptHeaderLocaleResolver
13.6.2. CookieLocaleResolver
13.6.3. SessionLocaleResolver
13.6.4. LocaleChangeInterceptor
13.7. 使用主题
13.7.1. 简介
13.7.2. 如何定义主题
13.7.3. 主题解析器
13.8. Spring对分段文件上传(multipart file upload)的支持
13.8.1. 介绍
13.8.2. 使用MultipartResolver
13.8.3. 在表单中处理分段文件上传
13.9. 使用Spring的表单标签库
13.9.1. 配置标签库
13.9.2. form标签
13.9.3. input标签
13.9.4. checkbox标签
13.9.5. radiobutton标签
13.9.6. password标签
13.9.7. select标签
13.9.8. option标签
13.9.9. options标签
13.9.10. textarea标签
13.9.11. hidden标签
13.9.12. errors标签
13.10. 处理异常
13.11. 惯例优先原则(convention over configuration)
13.11.1. 对控制器的支持: ControllerClassNameHandlerMapping
13.11.2. 对模型的支持:ModelMap (ModelAndView)
13.11.3. 对视图的支持: RequestToViewNameTranslator
13.12. 其它资源
14. 集成视图技术
14.1. 简介
14.2. JSP和JSTL
14.2.1. 视图解析器
14.2.2. 'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL
14.2.3. 帮助简化开发的额外的标签
14.3. Tiles
14.3.1. 需要的资源
14.3.2. 如何集成Tiles
14.3.2.1. InternalResourceViewResolver
14.3.2.2. ResourceBundleViewResolver
14.4. Velocity和FreeMarker
14.4.1. 需要的资源
14.4.2. Context 配置
14.4.3. 创建模板
14.4.4. 高级配置
14.4.4.1. velocity.properties
14.4.4.2. FreeMarker
14.4.5. 绑定支持和表单处理
14.4.5.1. 用于绑定的宏
14.4.5.2. 简单绑定
14.4.5.3. 表单输入生成宏
14.4.5.4. 重载HTML转码行为并使你的标签符合XHTML
14.5. XSLT
14.5.1. 写在段首
14.5.1.1. Bean 定义
14.5.1.2. 标准MVC控制器代码
14.5.1.3. 把模型数据转化为XML
14.5.1.4. 定义视图属性
14.5.1.5. 文档转换
14.5.2. 小结
14.6. 文档视图(PDF/Excel)
14.6.1. 简介
14.6.2. 配置和安装
14.6.2.1. 文档视图定义
14.6.2.2. Controller 代码
14.6.2.3. Excel视图子类
14.6.2.4. PDF视图子类
14.7. JasperReports
14.7.1. 依赖的资源
14.7.2. 配置
14.7.2.1. 配置ViewResolver
14.7.2.2. 配置View
14.7.2.3. 关于报表文件
14.7.2.4. 使用 JasperReportsMultiFormatView
14.7.3. 构造ModelAndView
14.7.4. 使用子报表
14.7.4.1. 配置子报表文件
14.7.4.2. 配置子报表数据源
14.7.5. 配置Exporter的参数
15. 集成其它Web框架
15.1. 简介
15.2. 通用配置
15.3. JavaServer Faces
15.3.1. DelegatingVariableResolver
15.3.2. FacesContextUtils
15.4. Struts
15.4.1. ContextLoaderPlugin
15.4.1.1. DelegatingRequestProcessor
15.4.1.2. DelegatingActionProxy
15.4.2. ActionSupport 类
15.5. Tapestry
15.5.1. 注入 Spring 托管的 beans
15.5.1.1. 将 Spring Beans 注入到 Tapestry 页面中
15.5.1.2. 组件定义文件
15.5.1.3. 添加抽象访问方法
15.5.1.4. 将 Spring Beans 注入到 Tapestry 页面中 - Tapestry 4.0+ 风格
15.6. WebWork
15.7. 更多资源
16. Portlet MVC框架
16.1. 介绍
16.1.1. 控制器 - MVC中的C
16.1.2. 视图 - MVC中的V
16.1.3. Web作用范围的Bean
16.2. DispatcherPortlet
16.3. ViewRendererServlet
16.4. 控制器
16.4.1. AbstractController和PortletContentGenerator
16.4.2. 其它简单的控制器
16.4.3. Command控制器
16.4.4. PortletWrappingController
16.5. 处理器映射
16.5.1. PortletModeHandlerMapping
16.5.2. ParameterHandlerMapping
16.5.3. PortletModeParameterHandlerMapping
16.5.4. 增加 HandlerInterceptor
16.5.5. HandlerInterceptorAdapter
16.5.6. ParameterMappingInterceptor
16.6. 视图和它们的解析
16.7. Multipart文件上传支持
16.7.1. 使用PortletMultipartResolver
16.7.2. 处理表单里的文件上传
16.8. 异常处理
16.9. Portlet应用的部署
IV. 整合
17. 使用Spring进行远程访问与Web服务
17.1. 简介
17.2. 使用RMI暴露服务
17.2.1. 使用 RmiServiceExporter 暴露服务
17.2.2. 在客户端链接服务
17.3. 使用Hessian或者Burlap通过HTTP远程调用服务
17.3.1. 为Hessian配置DispatcherServlet
17.3.2. 使用HessianServiceExporter暴露你的bean
17.3.3. 客户端连接服务
17.3.4. 使用Burlap
17.3.5. 对通过Hessian或Burlap暴露的服务使用HTTP基础认证
17.4. 使用HTTP调用器暴露服务
17.4.1. 暴露服务对象
17.4.2. 在客户端连接服务
17.5. Web服务
17.5.1. 使用JAXI-RPC暴露服务
17.5.2. 访问Web服务
17.5.3. 注册bean映射
17.5.4. 注册自己的处理方法
17.5.5. 使用XFire来暴露Web服务
17.6. 对远程接口不提供自动探测
17.7. 在选择这些技术时的一些考虑
18. Enterprise Java Bean(EJB)集成
18.1. 简介
18.2. 访问EJB
18.2.1. 概念
18.2.2. 访问本地的无状态Session Bean(SLSB)
18.2.3. 访问远程SLSB
18.3. 使用Spring提供的辅助类实现EJB组件
19. JMS
19.1. 简介
19.2. 使用Spring JMS
19.2.1. JmsTemplate
19.2.2. 连接工厂
19.2.3. (消息)目的地管理
19.2.4. 消息侦听容器
19.2.4.1. SimpleMessageListenerContainer
19.2.4.2. DefaultMessageListenerContainer
19.2.4.3. ServerSessionMessageListenerContainer
19.2.5. 事务管理
19.3. 发送一条消息
19.3.1. 使用消息转换器
19.3.2. SessionCallback 和ProducerCallback
19.4. 接收消息
19.4.1. 同步接收
19.4.2. 异步接收 - 消息驱动的POJOs
19.4.3. SessionAwareMessageListener 接口
19.4.4. MessageListenerAdapter
19.4.5. 事务中的多方参与
20. JMX
20.1. 介绍
20.2. 输出bean到JMX
20.2.1. 创建一个MBeanServer
20.2.2. 复用现有的MBeanServer
20.2.3. MBean的惰性初始化
20.2.4. MBean的自动注册
20.2.5. 控制注册行为
20.3. 控制bean的管理接口
20.3.1. MBeanInfoAssembler 接口
20.3.2. 使用源码级元数据
20.3.3. 使用JDK 5.0注解
20.3.4. 源代码级的元数据类型
20.3.5. 接口AutodetectCapableMBeanInfoAssembler
20.3.6. 用Java接口定义管理接口
20.3.7. 使用MethodNameBasedMBeanInfoAssembler
20.4. 控制bean的 ObjectName
20.4.1. 从Properties中读取ObjectName
20.4.2. 使用 MetadataNamingStrategy
20.5. JSR-160连接器
20.5.1. 服务器端连接器
20.5.2. 客户端连接器
20.5.3. 基于Burlap/Hessian/SOAP的JMX
20.6. 通过代理访问MBeans
20.7. 通知
20.7.1. 为通知注册监听器
20.7.2. 发布通知
20.8. 更多资源
21. JCA CCI
21.1. 介绍
21.2. 配置CCI
21.2.1. 连接器配置
21.2.2. 在Spring中配置ConnectionFactory
21.2.3. 配置CCI连接
21.2.4. 使用一个 CCI 单连接
21.3. 使用Spring的 CCI访问支持
21.3.1. 记录转换
21.3.2. CciTemplate 类
21.3.3. DAO支持
21.3.4. 自动输出记录生成
21.3.5. 总结
21.3.6. 直接使用一个 CCI Connection 接口和Interaction接口
21.3.7. CciTemplate 使用示例
21.4. 建模CCI访问为操作对象
21.4.1. MappingRecordOperation
21.4.2. MappingCommAreaOperation
21.4.3. 自动输出记录生成
21.4.4. 总结
21.4.5. MappingRecordOperation 使用示例
21.4.6. MappingCommAreaOperation 使用示例
21.5. 事务
22. Spring邮件抽象层
22.1. 简介
22.2. Spring邮件抽象结构
22.3. 使用Spring邮件抽象
22.3.1. 可插拔的MailSender实现
22.4. 使用 JavaMail MimeMessageHelper
22.4.1. 创建一条简单的MimeMessage,并且发送出去
22.4.2. 发送附件和嵌入式资源(inline resources)
23. Spring中的定时调度(Scheduling)和线程池(Thread Pooling)
23.1. 简介
23.2. 使用OpenSymphony Quartz 调度器
23.2.1. 使用JobDetailBean
23.2.2. 使用 MethodInvokingJobDetailFactoryBean
23.2.3. 使用triggers和SchedulerFactoryBean来包装任务
23.3. 使用JDK Timer支持类
23.3.1. 创建定制的timers
23.3.2. 使用 MethodInvokingTimerTaskFactoryBean类
23.3.3. 打包:使用TimerFactoryBean来设置任务
23.4. SpringTaskExecutor抽象
23.4.1. TaskExecutor接口
23.4.2. 何时使用TaskExecutor接口
23.4.3. TaskExecutor类型
23.4.4. 使用TaskExecutor接口
24. 动态语言支持
24.1. 介绍
24.2. 第一个例子
24.3. 定义动态语言支持的bean
24.3.1. 公共概念
24.3.1.1. <lang:language/> 元素
24.3.1.2. Refreshable bean
24.3.1.3. 内置动态语言源文件
24.3.1.4. 理解dynamic-language-backed bean context的构造器注入
24.3.2. JRuby beans
24.3.3. Groovy beans
24.3.4. BeanShell beans
24.4. 场景
24.4.1. Spring MVC控制器脚本化
24.4.2. Validator脚本化
24.5. 更多的资源
25. 注解和源代码级的元数据支持
25.1. 简介
25.2. Spring的元数据支持
25.3. 注解
25.3.1. @Required
25.3.2. Spring中的其它@Annotations
25.4. 集成Jakarta Commons Attributes
25.5. 元数据和Spring AOP自动代理
25.5.1. 基本原理
25.5.2. 声明式事务管理
25.5.3. 缓冲
25.5.4. 自定义元数据
25.6. 使用属性来减少MVC web层配置
25.7. 元数据属性的其它用法
25.8. 增加对额外元数据API的支持
A. XML Schema-based configuration
A.1. Introduction
A.2. XML Schema-based configuration
A.2.1. Referencing the schemas
A.2.2. The util schema
A.2.2.1. <util:constant/>
A.2.2.2. <util:property-path/>
A.2.2.3. <util:properties/>
A.2.2.4. <util:list/>
A.2.2.5. <util:map/>
A.2.2.6. <util:set/>
A.2.3. The jee schema
A.2.3.1. <jee:jndi-lookup/> (simple)
A.2.3.2. <jee:jndi-lookup/> (with single JNDI environment setting)
A.2.3.3. <jee:jndi-lookup/> (with multiple JNDI environment settings)
A.2.3.4. <jee:jndi-lookup/> (complex)
A.2.3.5. <jee:local-slsb/> (simple)
A.2.3.6. <jee:local-slsb/> (complex)
A.2.3.7. <jee:remote-slsb/>
A.2.4. The lang schema
A.2.5. The tx (transaction) schema
A.2.6. The aop schema
A.2.7. The tool schema
A.2.8. The beans schema
A.3. Setting up your IDE
A.3.1. Setting up Eclipse
A.3.2. Setting up IntelliJ IDEA
A.3.3. Integration issues
A.3.3.1. XML parsing errors in the Resin v.3 application server
B. Extensible XML authoring
B.1. Introduction
B.2. Authoring the schema
B.3. Coding a NamespaceHandler
B.4. Coding a BeanDefinitionParser
B.5. Registering the handler and the schema
B.5.1. META-INF/spring.handlers
B.5.2. META-INF/spring.schemas
C. spring-beans-2.0.dtd
D. spring.tld
D.1. Introduction
D.2. The bind tag
D.3. The escapeBody tag
D.4. The hasBindErrors tag
D.5. The htmlEscape tag
D.6. The message tag
D.7. The nestedPath tag
D.8. The theme tag
D.9. The transform tag
E. spring-form.tld
E.1. Introduction
E.2. The checkbox tag
E.3. The errors tag
E.4. The form tag
E.5. The hidden tag
E.6. The input tag
E.7. The label tag
E.8. The option tag
E.9. The options tag
E.10. The password tag
E.11. The radiobutton tag
E.12. The select tag
E.13. The textarea tag
F. Spring 2.0 开发手册中文化项目
F.1. 声明
F.2. 致谢
F.3. 参与人员及任务分配
F.4. Spring 2.0 正式版开发手册翻译说明
F.5. 项目历程
F.5.1. Spring 2.0 RC2 开发手册翻译项目
F.5.2. Spring 2.0 正式版开发手册翻译项目
分享到:
评论

相关推荐

    用OpenGL开发的机械臂运动仿真程序,并且实现机械手臂向四个方向的旋转.rar

    OpenGL是一种强大的图形库,用于创建2D和3D图形,广泛应用于游戏开发、科学可视化、工程设计等领域。在这个项目中,我们看到一个基于OpenGL的机械臂运动仿真程序,它能够实现机械臂在四个方向上的旋转。这样的模拟对于理解机械臂的工作原理、机器人控制算法以及进行虚拟环境中的机械臂运动测试具有重要意义。 我们需要了解OpenGL的基础知识。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D和3D矢量图形。它提供了大量的函数来处理图形的绘制,包括几何形状的定义、颜色设置、光照处理、纹理映射等。开发者通过OpenGL库调用这些函数,构建出复杂的图形场景。 在这个机械臂仿真程序中,C#被用来作为编程语言。C#通常与Windows平台上的.NET Framework配合使用,提供了一种面向对象的、类型安全的语言,支持现代编程特性如LINQ、异步编程等。结合OpenGL,C#可以构建高性能的图形应用。 机械臂的运动仿真涉及到几个关键的计算和控制概念: 1. **关节角度**:机械臂的每个部分(或关节)都有一个或多个自由度,表示为关节角度。这些角度决定了机械臂各部分的位置和方向。 2. **正向运动学**:根据关节角度计算机械臂末端执行器(如抓手)在空间中的位置和方向。这涉及将各个关节的角度转换为欧拉角或四元数,然后转化为笛卡尔坐标系的X、Y、Z位置和旋转。 3. **反向运动学**:给定末端执行器的目标位置和方向,计算出各关节所需的理想角度。这是一个逆向问题,通常需要解决非线性方程组。 4. **运动规划**:确定从当前状态到目标状态的路径,确保机械臂在运动过程中避免碰撞和其他约束。 5. **OpenGL的使用**:在OpenGL中,我们首先创建几何模型来表示机械臂的各个部分。然后,使用矩阵变换(如旋转、平移和缩放)来更新关节角度对模型的影响。这些变换组合起来,形成机械臂的动态运动。 6. **四向旋转**:机械臂可能有四个独立的旋转轴,允许它在X、Y、Z三个轴上旋转,以及额外的绕自身轴线的旋转。每个轴的旋转都由对应的关节角度控制。 7. **交互控制**:用户可能可以通过输入设备(如鼠标或键盘)调整关节角度,实时观察机械臂的运动。这需要将用户输入转换为关节角度,并应用到运动学模型中。 8. **图形渲染**:OpenGL提供了多种渲染技术,如深度测试、光照模型、纹理映射等,可以用于提高机械臂模拟的真实感。例如,可以添加材质和纹理来模拟金属表面,或者使用光照来增强立体感。 这个项目结合了OpenGL的图形渲染能力与C#的编程灵活性,构建了一个可以直观展示机械臂运动的仿真环境。通过理解并实现这些关键概念,开发者不仅能够学习到图形编程技巧,还能深入理解机器人学的基本原理。

    android11 udpate-engine 系统升级模块源码

    android11 udpate-engine 系统升级模块源码下载

    MATLAB环境下SVM二分类算法的实现与参数优化

    内容概要:本文详细介绍了如何在MATLAB环境中实现SVM二分类算法,涵盖数据预处理、参数寻优及结果可视化的全过程。首先进行数据归一化处理,确保各特征在同一量纲下参与模型训练。接着采用网格搜索法对SVM的关键参数c(惩罚系数)和g(核参数)进行自动化寻优,利用5折交叉验证评估每组参数的表现。最后通过等高线图和3D曲面图直观展示参数与准确率之间的关系,并完成最终模型的训练与预测。 适合人群:具有一定MATLAB编程基础的研究人员和技术爱好者,尤其是从事机器学习、数据分析领域的从业者。 使用场景及目标:适用于需要快速搭建SVM二分类模型并进行参数调优的项目。主要目标是在短时间内获得较高准确度的分类结果,同时掌握SVM的工作原理及其在MATLAB中的具体应用方法。 其他说明:文中提供了完整的代码示例,便于读者直接上手实践。此外还提到了一些常见的注意事项,如数据格式要求、类别不平衡处理以及特征工程的重要性等。

    ffmpeg liblame pcm转mp3教程.zip

    ffmpeg

    江科大CAN入门教程,万字长文理解

    江科大CAN入门教程,万字长文理解

    移动电源设计方案详解:基于新唐N79E814单片机的双路输出PCB设计与实现

    内容概要:本文详细介绍了基于新唐N79E814单片机的移动电源设计方案,涵盖硬件架构、PCB原理图、电路设计、代码实现等方面。移动电源主要由电池、充电电路和输出电路构成,文中重点讲解了5V1A和5V2.1A两路输出的设计思路,包括同步整流、PWM控制、充电管理等关键技术。同时,文章还探讨了PCB布局、烧录注意事项、效率优化等内容,并提供了具体的代码示例和调试建议。 适合人群:具有一定电子技术和单片机开发基础的工程师和技术爱好者。 使用场景及目标:适用于希望深入了解移动电源设计原理和实现方法的人群,旨在帮助读者掌握从原理图绘制到实际产品制作的全过程,提升电路设计和调试能力。 其他说明:文章不仅提供了理论知识,还包括大量实践经验分享,如常见的调试陷阱和解决方法,有助于读者在实践中少走弯路。

    动漫角色分割-基于深度学习实现的高精度动漫角色分割算法-附项目源码-优质项目实战.zip

    动漫角色分割_基于深度学习实现的高精度动漫角色分割算法_附项目源码_优质项目实战

    一款Java通过javacv实现的支持各种音视频播放的播放器项目源码

    javacv实现的支持多种音视频播放的播放器,比如MP4、avi、mkv、flv、MP3、ogg、wav、au等多种音视频格式,非常好用。

    浏览器插件+JS+自动登录+demo

    开发调试demo,简单的自动登录功能,插件开发入门参考

    【计算机管理与注册表编辑】Windows系统管理员工具与用户账户管理:本地用户和组、远程桌面配置及SAM权限设置,具体教学与批处理可私信我

    内容概要:本文详细介绍了通过修改Windows注册表来启用和配置被禁用的用户账户(如WDAGUtilityAccount)的过程。首先,通过计算机管理界面查看被禁用的用户账户,并进入注册表编辑器定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users路径下的相应用户条目。接着,通过对特定用户的二进制数据进行编辑,包括复制和修改关键字段,实现对被禁用账户的克隆与重新启用。最后,验证账户状态的变化,并通过远程桌面连接测试新配置的有效性。 适合人群:具备一定Windows系统管理基础的技术人员,尤其是负责企业内部网络和用户账户管理的IT管理员。 使用场景及目标:①当需要恢复或重新配置被禁用的用户账户时;②在进行系统故障排除或安全审计时,了解如何通过注册表直接操作用户账户;③确保特定用户能够正常登录并访问远程桌面服务。 阅读建议:本文涉及较为底层的系统操作,建议读者在实际操作前充分备份系统和注册表,避免误操作导致系统不稳定。同时,对于不熟悉注册表编辑的用户,应先在测试环境中练习,确保掌握相关技能后再应用于生产环境。此外,建议结合官方文档或其他权威资料,加深对Windows用户账户管理机制的理解。

    新冠抗原自测平台 2025免费JAVA微信小程序毕设

    2025免费微信小程序毕业设计成品,包括源码+数据库+往届论文资料,附带启动教程和安装包。 启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS 讲解视频:https://www.bilibili.com/video/BV1BVKMeZEYr 技术栈:Uniapp+Vue.js+SpringBoot+MySQL。 开发工具:Idea+VSCode+微信开发者工具。

    基于S7-1200 PLC的两部六层电梯控制系统设计与梯形图编程详解

    内容概要:本文详细介绍了基于西门子S7-1200 PLC的两部六层电梯控制系统的设计与实现。主要内容涵盖前期准备工作,如选择合适的PLC型号和配置硬件;核心逻辑部分深入讲解了梯形图编程的具体实现方法,包括楼层呼叫逻辑、电梯运行方向控制以及两部电梯之间的协同工作;此外,文章还探讨了仿真测试的方法及其重要性,提供了许多实用技巧和注意事项。通过具体实例展示了如何利用博途V15软件进行电梯系统的开发,并分享了一些实际操作中的经验和常见问题解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些对PLC编程有兴趣或者正在参与类似项目的从业者。 使用场景及目标:适用于需要理解和掌握S7-1200 PLC编程技能的人群,尤其是希望通过实际案例加深对梯形图编程理解的学习者。目标是在实践中提高编程能力,能够独立完成类似的工程项目。 其他说明:文中不仅包含了详细的理论解释,还有丰富的代码片段供读者参考。对于初学者而言,建议先从单部电梯开始练习,逐步过渡到复杂的双梯联调。同时,作者强调了仿真测试的重要性,指出这是验证程序正确性和优化性能的关键步骤。

    农产品自主供销系统 2025免费JAVA微信小程序毕设

    2025免费微信小程序毕业设计成品,包括源码+数据库+往届论文资料,附带启动教程和安装包。 启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS 讲解视频:https://www.bilibili.com/video/BV1BVKMeZEYr 技术栈:Uniapp+Vue.js+SpringBoot+MySQL。 开发工具:Idea+VSCode+微信开发者工具。

    大学英语四级听力练习音频MP3

    内容概要:该资源为大学英语四级听力练习音频 MP3,包含丰富多样的听力素材。涵盖四级考试常见的各类场景,如校园生活(课程学习、社团活动等)、日常社交(聚会、聊天等)、工作求职(面试、职场事务等)、旅行交通(出行方式、景点介绍等)、饮食健康(餐厅点餐、健康养生等)。音频内容依照四级听力考试题型和难度精心录制,有短对话、长对话、短文听力等形式,且语速、口音等符合四级考试要求,助力考生熟悉考试形式与节奏。 适合人群:正在备考大学英语四级考试,希望提升听力水平的学生;英语基础中等,需要通过针对性练习来适应四级听力难度、提升听力理解能力的学习者;对英语听力学习有需求,想通过大量练习积累场景词汇、熟悉英语表达习惯的人群。 能学到什么:①熟悉四级听力考试的各类场景词汇,增强词汇储备并提升在听力语境中的反应速度;②掌握不同场景下的英语常用表达和句式,提升英语语言运用能力;③锻炼听力理解技巧,如抓取关键词、推断隐含意思、梳理篇章逻辑等;④适应四级听力考试的语速、口音和题型设置,增强应试能力和自信心。 阅读建议:制定系统的练习计划,定期定量进行听力练习,如每天安排 30 - 60 分钟;第一遍泛听,了解大致内容和主题;第二遍精听,逐句听写或分析不懂的词汇和句子;对照听力原文,明确错误和没听懂的地方,积累生词和表达;定期进行模拟测试,利用该音频模拟考试环境,检验学习效果并调整学习策略。

    2000-2017年各省天然气消费量数据

    2000-2017年各省天然气消费量数据 1、时间:2000-2017年 2、来源:国家统计j、能源nj 3、指标:行政区划代码、城市、年份、天然气消费量 4、范围:31省

    西门子PLC1200与库卡机器人协同控制系统的多设备集成方案

    内容概要:本文详细介绍了基于西门子PLC1200的自动化控制系统,涵盖了PLC与库卡机器人通过Profinet通讯、PTO模式控制松下伺服、36路模拟量处理(包括压力检测、位置检测及压力输出)、以及26个温控器通过485总线通讯的关键技术和实现方法。此外,还包括了昆仑通态触摸屏的人机交互界面设计,提供了详细的硬件组态、软件编程指导和设备操作说明。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些负责多设备协同控制项目的设计和实施的专业人士。 使用场景及目标:适用于需要整合多种设备(如PLC、机器人、伺服系统、温控器等)的复杂自动化生产线。主要目标是提高生产效率、增强系统的稳定性和可靠性,同时降低维护成本。 其他说明:文中不仅提供了具体的编程实例和硬件配置指南,还分享了许多实际调试过程中积累的经验教训,有助于读者在实际应用中少走弯路。

    汽车电子基于AUTOSAR的BSW层功能详解:服务、驱动、接口与管理器模块设计及应用了文档的主要内容

    内容概要:本文深入探讨了AUTOSAR BSW(Basic Software)层所提供的各类服务、驱动、接口和管理器模块及其功能。BSW提供的服务包括I/O、Memory、Crypto、Communication、Off-board Communication和System等,涵盖了标准化的访问方式以确保不同硬件和系统的兼容性与安全性。BSW里的驱动分为内部驱动和外部驱动,分别用于控制和访问微控制器内部和外部的设备,确保硬件功能的正常运作。BSW里的接口(xx_IF)对下层模块进行抽象和封装,提供标准API接口,使上层应用无需关注底层硬件细节。BSW里的管理器(xxxM)则为多个客户端提供特定服务,能够修改或适配调整一些数据,以满足复杂需求。此外,文中还简要介绍了AUTOSAR里的库文件,它们是无状态的函数集合,可被多个模块调用以实现特定功能。 适合人群:对汽车电子软件架构有一定了解,尤其是对AUTOSAR标准感兴趣的工程师和技术人员。 使用场景及目标:①理解BSW层提供的各类服务及其应用场景;②掌握BSW中驱动、接口和管理器模块的设计原理和功能;③了解库文件的作用及其在AUTOSAR架构中的位置。 其他说明:本文详细解释了BSW层各组件的功能和作用,帮助读者更好地理解AUTOSAR架构的设计思想和实现方法。建议读者结合实际项目经验,深入研究各模块的具体实现和应用场景。

    西门子1200伺服步进FB块程序:支持多轴调用的自动化控制解决方案

    内容概要:本文介绍了西门子1200系列PLC的伺服步进FB块程序,该程序由两个FB块组成,分别采用SCL语言和梯形图编写,支持PTO和PN模式,适用于多种伺服系统和步进电机。程序经过实际调试,稳定性高,兼容性强,能够灵活应用于单轴或多轴控制系统。文中提供了详细的代码示例和调试指南,帮助用户快速上手并解决常见问题。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是使用西门子1200系列PLC进行项目开发的人员。 使用场景及目标:①用于单轴或多轴伺服步进系统的控制;②提高项目的开发效率和稳定性;③减少重复开发的工作量,加快项目进度。 其他说明:程序需要在TIA V14及以上版本打开,附带详细的文档说明和实际项目视频链接,方便用户理解和使用。

    基于SpringBoot+Vue的电子招投标系统源码+数据库.zip

    基于SpringBoot+Vue的电子招投标系统源码+数据库.zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的电子招投标系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、演示视频等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 基于SpringBoot+Vue的电子招投标系统源码+数据库.zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的电子招投标系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、演示视频等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 基于SpringBoot+Vue的电子招投标系统源码+数据库.zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的电子招投标系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可

    金秋风影桂林山水卡通儿童教学课件模板.pptx

    金秋风影桂林山水卡通儿童教学课件模板.pptx

Global site tag (gtag.js) - Google Analytics