没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
1515页
Spring 作为Java界当之无愧的王者级框架,但遗憾的是一直官方没有提供中文的文档。目前中文互联网上的所有中文文档几乎都是“谷歌一键翻译”,内容晦涩难懂,充满了“春天,弹簧,豆子”这种令人啼笑皆非的翻译内容,而且常年未更新,版本还停留在N年前。所以,我们花了一点点时间,整理,翻译出了全网最新,质量最高的 Spring Framework 6 中文文档。我们使用了 Deepl AI 翻译,并且对翻译后的内容进行人工逐行校验,从 java 开发者的角度对内容进行优化,保留了一些原汁原味的专业术语,相信这份文档可以让你有不一样的体验。 还有其他优质的 spring-data/spring-security/spring-cloud 等框架的中文文档请访问 https://springdoc.cn/ 无须关注,无须登录,无广告,在线读。 希望可以对你有所帮助。
资源推荐
资源详情
资源评论
Spring Framework 中文文档
Version 6.0.8-SNAPSHOT
Table of Contents
1. 版权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2. Spring Framework 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
2.1. 我们对"Spring"的理解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
2.2. Spring和Spring框架的历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
2.3. 设计理念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
2.4. 反馈和贡献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
2.5. 入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
3. 核心技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1. IoC 容器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1.1. Spring IoC容器和Bean简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1.2. 容器概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê7
配置元数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê8
实例化一个容器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê9
使用容器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
3.1.3. Bean 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê15
Bean 命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
实例化 Bean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
3.1.4. 依赖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê22
依赖注入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê23
依赖和配置的细节. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê33
使用 depends-on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê43
懒加载的Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê44
注入协作者(Autowiring Collaborators) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê45
方法注入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê47
3.1.5. Bean Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê55
Singleton Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê56
Prototype Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê57
singleton Bean 和 prototype bean 依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê58
Request、 Session、 Application 和 WebSocket Scope . . . . . . . . . . . . . . . . . . . Ê59
自定义 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê65
3.1.6. 自定义Bean的性质(Nature). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê69
生命周期回调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê69
ApplicationContextAware 和 BeanNameAware . . . . . . . . . . . . . . . . . . . . . . . . Ê79
其他 Aware 接口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê80
3.1.7. Bean 定义(Definition)的继承 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê81
3.1.8. 容器扩展点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê82
使用 BeanPostProcessor 自定义 Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê82
用 BeanFactoryPostProcessor 定制配置元数据 . . . . . . . . . . . . . . . . . . . . . . . . Ê87
用 FactoryBean 自定义实例化逻辑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê91
3.1.9. 基于注解的容器配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê92
使用 @Autowired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê94
用 @Primary 对基于注解的自动注入进行微调. . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê102
用 Qualifiers 微调基于注解的自动注入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê104
使用泛型作为自动注入 Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê113
使用 CustomAutowireConfigurer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê115
用 @Resource 注入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê115
使用 @Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê118
使用 @PostConstruct 和 @PreDestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê122
3.1.10. Classpath扫描和管理的组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê123
@Component 和进一步的 Stereotype 注解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê123
使用元注解和组合注解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê124
自动检测类和注册Bean定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê126
使用Filter来自定义扫描 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê128
在组件中定义Bean元数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê130
命名自动检测的组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê135
为自动检测的组件提供一个Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê137
用注解提供 Qualifier 元数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê139
生成一个候选组件的索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê140
3.1.11. 使用JSR 330标准注解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê141
用 @Inject 和 @Named 进行依赖注入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê142
@Named 和 @ManagedBean:与 @Component 注解的标准对等物 . . . . . . . . . . . . . Ê145
JSR-330 标准注解的局限性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê147
3.1.12. 基于Java的容器配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê149
基本概念:@Bean 和 @Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê149
通过使用 AnnotationConfigApplicationContext 实例化Spring容器. . . . . . Ê151
使用 @Bean 注解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê156
使用 @Configuration 注解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê167
构建基于Java的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê172
3.1.13. Environment 抽象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê189
Bean定义配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê189
PropertySource 抽象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê199
使用 @PropertySource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê200
声明中的占位符解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê202
3.1.14. 注册 LoadTimeWeaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê203
3.1.15. ApplicationContext 的附加功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê204
使用 MessageSource 进行国际化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê204
标准和自定义事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê208
方便地获取低级别的资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê218
应用程序启动跟踪 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê219
为web应用程序提供方便的 ApplicationContext 实例化 . . . . . . . . . . . . . . . . . Ê221
将 Spring ApplicationContext 部署为Jakarta EE RAR文件 . . . . . . . . . . . . . . Ê221
3.1.16. BeanFactory API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê222
BeanFactory 还是 ApplicationContext?. . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê223
3.2. 资源(Resources) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê225
3.2.1. 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê225
3.2.2. Resource 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê226
3.2.3. 内置的 Resource 实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê227
UrlResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê228
ClassPathResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê228
FileSystemResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê229
PathResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê229
ServletContextResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê229
InputStreamResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê229
ByteArrayResource
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê229
3.2.4. ResourceLoader 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê230
3.2.5. ResourcePatternResolver 接口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê232
3.2.6. ResourceLoaderAware 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê233
3.2.7. 作为依赖的 Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê234
3.2.8. Application Context 和资源路径. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê236
构建 Application Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê236
Application Context 构造器资源路径中的通配符 . . . . . . . . . . . . . . . . . . . . . . . . . Ê238
FileSystemResource 注意事项. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê241
3.3. 验证、数据绑定和类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê243
3.3.1. 使用 Spring 的 Validator 接口进行验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê244
3.3.2. 将code解析为错误信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê247
3.3.3. Bean 操作和 BeanWrapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê248
设置和获取基本属性和嵌套属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê248
内置的 PropertyEditor 实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê251
3.3.4. Spring 类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê259
转换器(Converter) SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê259
使用 ConverterFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê260
使用 GenericConverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê261
ConversionService API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê262
配置 ConversionService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê263
以编程方式使用 ConversionService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê264
3.3.5. Spring 字段格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê265
Formatter SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê266
注解驱动的格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê268
FormatterRegistry SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê271
FormatterRegistrar SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê272
在Spring MVC中配置格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê273
3.3.6. 配置全局的 Date 和 Time 的格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê273
3.3.7. Java Bean 校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê275
Bean 校验(Validation)的概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê275
配置一个Bean Validation Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê276
配置 DataBinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê280
Spring MVC 3 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê281
3.4. Spring 表达式语言(SpEL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê281
3.4.1. 评估(Evaluation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê283
理解 EvaluationContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê286
解析器(Parser )配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê288
SpEL 编译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê289
3.4.2. Bean定义中的表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê291
XML 配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê292
注解配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê292
3.4.3. 语言参考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê295
字面值上的表达 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê296
Properties、Array、List、Map 和索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê297
内联列表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê299
内联Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê300
Array 构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê300
方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê301
操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê302
类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê309
构造器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê309
变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê310
函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê312
Bean 引用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê314
三元运算符(If-Then-Else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê315
埃尔维斯(Elvis)运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê315
安全的导航操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê317
Collection Selection(选择) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê318
Collection 投影 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê319
表达式模板化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê320
3.4.4. 实例中使用的Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê321
3.5. 用Spring进行面向切面的编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê325
3.5.1. AOP 概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê326
3.5.2. Spring AOP 的能力和目标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê327
3.5.3. AOP 代理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê328
3.5.4. @AspectJ 的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê329
启用 @AspectJ 的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê329
声明一个 Aspect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê330
声明一个切点(Pointcut) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê331
声明 Advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê342
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê359
Aspect 实例化模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê361
一个AOP实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê362
3.5.5. 基于Schema的AOP支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê365
声明一个 Aspect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê366
声明一个 Pointcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê366
声明 Advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê369
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê377
切面实例化模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê379
Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê379
一个 AOP Schema 的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê379
3.5.6. 选择使用哪种AOP声明风格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê383
Spring AOP 还是完全的 AspectJ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê383
@AspectJ或XML用于Spring AOP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê383
3.5.7. 混合切面类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê384
3.5.8. 代理机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê385
剩余1514页未读,继续阅读
资源评论
GreysonYee
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功