• Atitit ioc 之道 attilax著 第2章 装配Bean 33 2.1 Spring配置的可选方案 34 2.2 自动化装配bean 35 2.2.1 创建可被发现的bean 35 2.


    Atitit ioc 之道 attilax

    2章 装配Bean 33

    2.1 Spring配置的可选方案 34

    2.2 自动化装配bean 35

    2.2.1 创建可被发现的bean 35

    2.2.2 为组件扫描的bean命名 38

    2.2.3 设置组件扫描的基础包 39

    2.2.4 通过为bean添加注解实现自动装配 40

    2.2.5 验证自动装配 42

    2.3 通过Java代码装配

    bean 44

    2.3.1 创建配置类 44

    2.3.2 声明简单的bean 45

    2.3.3 借助JavaConfig实现注入 46

    2.4 通过XML装配bean 48

    2.4.1 创建XML配置规范 48

    2.4.2 声明一个简单的

    49

    2.4.3 借助构造器注入初始化bean 50

    2.4.4 设置属性 56

    2.5 导入和混合配置 61

    2.5.1 在JavaConfig中引用XML配置 61

    2.5.2 在XML配置中引用JavaConfig 63

    2.6 小结 65

    3章 高级装配 67

    3.1 环境与profile 67

    3.1.1 配置profile bean 69

    3.1.2 激活profile 73

    3.2 条件化的bean 75

    3.3 处理自动装配的歧义性 78

    3.3.1 标示首选的bean 79

    3.3.2 限定自动装配的bean 80

    3.4 bean的作用域 84

    3.4.1 使用会话和请求作用域 86

    3.4.2 在XML中声明作用域代理 88

    3.5 运行时值注入 88

    3.5.1 注入外部的值 89

    3.5.2 使用Spring表达式语言进行装配 93

    3.6 小结 99

    4章 面向切面的Spring 101

    4.1 什么是面向切面编程? 102

    4.1.1 定义AOP术语 103

    4.1.2 Spring对AOP的支持 105

    4.2 通过切点来选择连接点 107

    4.2.1 编写切点 108

    4.2.2 在切点中选择bean 109

    4.3 使用注解创建切面 109

    4.3.1 定义切面 110

    4.3.2 创建环绕通知 114

    4.3.3 处理通知中的参数 115

    4.3.4 通过注解引入新功能 118

    4.4 在XML中声明切面 120

    4.4.1 声明前置和后置通知 122

    4.4.2 声明环绕通知 124

    4.4.3 为通知传递参数 125

    4.4.4 通过切面引入新的功能 127

    4.5 注入AspectJ切面 128

    4.5 小结 131

     

    第2部分 Web中的Spring

     

    5章 构建Spring Web应用程序 135

    5.1 Spring MVC起步 136

    5.1.1 跟踪Spring MVC的请求 136

    5.1.2 搭建Spring MVC 138

    5.1.3 Spittr应用简介 142

    5.2 编写基本的控制器 14

    13章 缓存数据 367

    13.1 启用对缓存的支持 368

    13.1.1 配置缓存管理器 369

    13.2 为方法添加注解以支持缓存 373

    13.2.1 填充缓存 374

    13.2.2 移除缓存条目 378

    13.3 使用XML声明缓存 379

    13.4 小结 383

    14章 保护方法应用 385

    14.1 使用注解保护方法 386

    14.1.1 使用@Secured注解限制方法调用 386

    14.1.2 在Spring Security中使用

    JSR-250的@RolesAllowed注解 387

    14.2 使用表达式实现方法级别的安全性 388

    14.2.1 表述方法访问规则 389

    14.2.2 过滤方法的输入和输出 391

    14.3 小结 395

    4章 IoC容器 72
    4.1 IoC概述 72
    4.1.1 通过实例理解IoC的概念 73
    4.1.2 IoC的类型 75
    4.1.3 通过容器完成依赖关系的
    注入 77
    4.2 相关Java基础知识 78
    4.2.1 简单实例 78
    4.2.2 类装载器ClassLoader 80
    4.2.3 Java反射机制 83
    4.3 资源访问利器 85
    4.3.1 资源抽象接口 85
    4.3.2 资源加载 88
    4.4 BeanFactory和ApplicationContext 91
    4.4.1 BeanFactory介绍 92
    4.4.2 ApplicationContext介绍 94
    4.4.3 父子容器 103
    4.5 Bean的生命周期 103
    4.5.1 BeanFactory中Bean的生命
    周期 103
    4.5.2 ApplicationContext中Bean
    的生命周期 112
    4.6 小结 114
    5章 在IoC容器中装配Bean 115
    5.1 Spring配置概述 116
    5.1.1 Spring容器高层视图 116
    5.1.2 基于XML的配置 117
    5.2 Bean基本配置 120
    5.2.1 装配一个Bean 120
    5.2.2 Bean的命名 120
    5.3 依赖注入 121
    5.3.1 属性注入 121
    5.3.2 构造函数注入 124
    5.3.3 工厂方法注入 128
    5.3.4 选择注入方式的考量 130
    5.4 注入参数详解 130
    5.4.1 字面值 130
    5.4.2 引用其他Bean 131
    5.4.3 内部Bean 133
    5.4.4 null值 133
    5.4.5 级联属性 134
    5.4.6 集合类型属性 134
    5.4.7 简化配置方式 138
    5.4.8 自动装配 141
    5.5 方法注入 142
    5.5.1 lookup方法注入 142
    5.5.2 方法替换 143
    5.6 <bean>之间的关系 144
    5.6.1 继承 144
    5.6.2 依赖 145
    5.6.3 引用 146
    5.7 整合多个配置文件 147
    5.8 Bean作用域 148
    5.8.1 singleton作用域 148
    5.8.2 prototype作用域 149
    5.8.3 与Web应用环境相关的Bean
    作用域 150
    5.8.4 作用域依赖问题 152
    5.9 FactoryBean 153
    5.10 基于注解的配置 155
    5.10.1 使用注解定义Bean 155
    5.10.2 扫描注解定义的Bean 156
    5.10.3 自动装配Bean 157
    5.10.4 Bean作用范围及生命过程
    方法 162
    5.11 基于Java类的配置 164
    5.11.1 使用Java类提供Bean定义
    信息 164
    5.11.2 使用基于Java类的配置信息
    启动Spring容器 167
    5.12 基于Groovy DSL的配置 169
    5.12.1 使用Groovy DSL提供Bean
    定义信息 169
    5.12.2 使用GenericGroovyApplication
    Context启动Spring容器 171
    5.13 通过编码方式动态添加Bean 172
    5.13.1 通过DefaultListableBean
    Factory 172
    5.13.2 扩展自定义标签 173
    5.14 不同配置方式比较 175
    5.15 小结 177
    6章 Spring容器高级主题 178
    6.1 Spring容器技术内幕 178
    6.1.1 内部工作机制 179
    6.1.2 BeanDefinition 182
    6.1.3 InstantiationStrategy 183
    6.1.4 BeanWrapper 183
    6.2 属性编辑器 184
    6.2.1 JavaBean的编辑器 185
    6.2.2 Spring默认属性编辑器 188
    6.2.3 自定义属性编辑器 189
    6.3 使用外部属性文件 192
    6.3.1 PropertyPlaceholderConfigurer
    属性文件 192
    6.3.2 使用加密的属性文件 195
    6.3.3 属性文件自身的引用 198
    6.4 引用Bean的属性值 199
    6.5 国际化信息 201
    6.5.1 基础知识 201
    6.5.2 MessageSource 206
    6.5.3 容器级的国际化信息资源 209
    6.6 容器事件 210
    6.6.1 Spring事件类结构 211
    6.6.2 解构Spring事件体系的具体
    实现 213
    6.6.3 一个实例 214
    6.7 小结 215
    7章 Spring AOP基础 216
    7.1 AOP概述 216
    7.1.1 AOP到底是什么 217
    7.1.2 AOP术语 219
    7.1.3 AOP的实现者 221
    7.2 基础知识 222
    7.2.1 带有横切逻辑的实例 222
    7.2.2 JDK动态代理 224
    7.2.3 CGLib动态代理 228
    7.2.4 AOP联盟 229
    7.2.5 代理知识小结 230
    7.3 创建增强类 230
    7.3.1 增强类型 230
    7.3.2 前置增强 231
    7.3.3 后置增强 235
    7.3.4 环绕增强 236
    7.3.5 异常抛出增强 237
    7.3.6 引介增强 239
    7.4 创建切面 243
    7.4.1 切点类型 243
    7.4.2 切面类型 244
    7.4.3 静态普通方法名匹配切面 246
    7.4.4 静态正则表达式方法匹配
    切面 248
    7.4.5 动态切面 251
    7.4.6 流程切面 254
    7.4.7 复合切点切面 256
    7.4.8 引介切面 258
    7.5 自动创建代理 259
    7.5.1 实现类介绍 259
    7.5.2 BeanNameAutoProxyCreator 260
    7.5.3 DefaultAdvisorAutoProxy
    Creator 261
    7.5.4 AOP无法增强疑难问题
    剖析 262
    7.6 小结 267
    8章 基于@AspectJ和Schema的
    AOP 269
    8.1 Spring对AOP的支持 269
    8.2 Java 5.0注解知识快速进阶 270
    8.2.1 了解注解 270
    8.2.2 一个简单的注解类 271
    8.2.3 使用注解 272
    8.2.4 访问注解 273
    8.3 着手使用@AspectJ 274
    8.3.1 使用前的准备 275
    8.3.2 一个简单的例子 275

     

     

    Atitit .aop 原理理论 架构设计   实现机制 解决方案 理念模式  以及各种语言的实现  java php c#.net js javascript  c++ python

    1. 先了解AOP的相关术语:  1

    2. 常见有三种实现方式:  2

    2.1. 1.利用代理模式动态的实现AOP, 2

    2.2. 采用静态织入的方式,引入特定的语法创建“方面”,@AspectJ注解驱动的切面  2

    2.3. 3.使用自定义加载器的方法动态进行代理。 2

    2.4. Filter threadlocal模式 2

    2.5. Plugin设计模式 2

    3. 参考 2

    1. 先了解AOP的相关术语: 


    1.通知(Advice): 
    通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。 
    2.连接点(Joinpoint): 
    程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。 
    3.切入点(Pointcut) 
    通知定义了切面要发生的“故事”和时间,那么切入点就定义了“故事”发生的地点,例如某个类或方法的名称,Spring中允许我们方便的用正则表达式来指定 
    4.切面(Aspect) 
    通知和切入点共同组成了切面:时间、地点和要发生的“故事” 
    5.引入(Introduction) 
    引入允许我们向现有的类添加新的方法和属性(Spring提供了一个方法注入的功能) 
    6.目标(Target) 
    即被通知的对象,如果没有AOP,那么它的逻辑将要交叉别的事务逻辑,有了AOP之后它可以只关注自己要做的事(AOP让他做爱做的事) 
    7.代理(proxy) 
    应用通知的对象,详细内容参见设计模式里面的代理模式 
    8.织入(Weaving) 
    把切面应用到目标对象来创建新的代理对象的过程,织入一般发生在如下几个时机
    (1)编译时:当一个类文件被编译时进行织入,这需要特殊的编译器才可以做的到,例如AspectJ的织入编译器 
    (2)类加载时:使用特殊的ClassLoader在目标类被加载到程序之前增强类的字节代码 
    (3)运行时:切面在运行的某个时刻被织入,SpringAOP就是以这种方式织入切面的,原理应该是使用了JDK的动态代理技术 

    2. 常见有三种实现方式:

    2.1. 1.利用代理模式动态的实现AOP,

    从具体的技术细节又可以分为静态代理,动态代理,CGLIB生成子类代理。 
    2.使用预编译的方法静态进行代理

    2.2. 采用静态织入的方式,引入特定的语法创建“方面”,@AspectJ注解驱动的切面 

    从而使得编译器可以在编译期间织入有关“方面”的代码。动态代理实现方式利用.NetAttribute.Net Remoting的代理技术,对

    2.3. 3.使用自定义加载器的方法动态进行代理。


    后两种代理都可以代理更多的内容(比如构造函数,静态方法,静态块,final方法,私有方法等)

    2.4. Filter threadlocal模式

    2.5. Plugin设计模式

     

     

    3. 参考

    paip. uapi 过滤器的java php python 实现aop filter - attilax的专栏 - 博客频道 - CSDN.NET.htm

    两种AOP实现方式的性能比较 - 小庄 - 博客园.htm

    Spring AOP 常用的四种实现方式 - - ITeye技术网站.htm

     

    Spring实战(第4版)》([] Craig Walls 沃尔斯)【简介_书评_在线阅读】 - 当当图书.mhtml

  • 相关阅读:
    Leetcode OJ: Rotate List
    Leetcode OJ: Reverse Words in a String
    Effective C++读书笔记
    word改变下划线与文字的距离
    sql 取出表中不重复的值
    Iso文件用utrliso怎么安装
    Spring注入aspectJ切面
    Spring中利用java注解声明切面
    Spring面向切面编程
    spring中部分异常
  • 原文地址:https://www.cnblogs.com/attilax/p/15197728.html
Copyright © 2020-2023  润新知