1. 在Spring配置文件中,通常使用<aop:config>元素来设置AOP,其中应包括:

    • <aop:aspect>指定aspect,aspect是一个POJO类,包含了很多的advice;advice是aspect中的方法,它包含了要应用在切面上的逻辑;
    • <aop:pointcut>指定pointcut,pointcut是一个表达式,用于指定在哪些对象或者类型上应用aspect的advice;
    • <aop:before>, <aop:after>,<aop:after-returning>, <aop:after-throwing>, or <aop:around>是<aop:aspect>的子元素,用于指定将aspect中的哪一个advice方法(通过method属性)应用到哪一个pointcut上(通过pointcut-ref属性);
  2. 如何通过一个静态字段创建一个bean:
    • 使用一个内置的FactoryBean:FieldRetrievingFactoryBean,并指定其staticField属性,属性值就是该静态字段的全路径;
    • 使用<util:constant>标记,其static-field用于指定静态字段的全路径;
  3. 如果通过一个对象属性来创建一个bean:
    • 使用一个内置的FactoryBean:PropertyPathFactoryBean,其targetObject属性用于指定属性所在的对象bean,propertyPath用于属性的全路径;
    • 使用<util:property-path>标记,其path属性指定beanName....propertyName;
  4. 有时候bean需要知道一些其在spring container中的原数据信息,这需要让bean的类型实现一些特定的接口:
    接口名 说明
    BeanNameAware  Bean name
    BeanFactoryAware 当前bean所在的Bean Factory,通过它你能调用container的一些service
    ApplicationContextAware 当前bean所在的Application Context,通过它你能调用container的一些service
    MessageSourceAware  得到当前Appliaction Context中的Message Source,通过它你能得到Message
    ApplicationEventPublisherAware  得到当前Appliaction Context中的Application Event Publisher,通过它你能publish Application Events 
    ResourceLoaderAware   得到当前Appliaction Context中的Resource Loader,通过它你能load External Resources

    这些接口中的Setter方法将在bean属性被设置之后,在初始化方法被调用之前被Spring Container自动调用:

    • 通过构造函数或者工厂方法创建bean实例;
    • 设置bean的属性值;
    • 调用这些接口的Setter方法;
    • 将bean实例传递给BeanPostProcessor实现类的postProcessBeforeInitialization方法;
    • 调用bean的初始化方法;
    • 将bean实例传递给BeanPostProcessor实现类的postProcessAfterInitialization方法;
    • 使用bean;
    • 当container被关闭时;调用析构器方法;
  5. 在Spring中,各个bean之间可以通过Event来进行交流,通常使用以下3个步骤来完成:
    • 申明Event的类型,所有的Event都必须继承自ApplicationEvent类;
    • 发布Event的bean必须要实现ApplicationEventPublisher接口,如果要publish event时,请调用publishEvent()方法;
    • 侦听Event的bean都必须要实现ApplicationListener接口,并实现onAppicationEvent方法;如果Listener只想侦听特殊的Event,可以实现ApplicationListener接口的范型形式;

    application context它自己也在发布container events,例如ContextClosedEvent,ContextRefreshedEvent,RequestHandledEvent。

  6. Property Editor主要用于实现字符串与属性类型值之间的相互转换,Spring提供了很多内置的PropertyEditors,在使用这些之前,应首先注册它们;
    Spring提供了CustomNumberEditor, ClassEditor, FileEditor, LocaleEditor, StringArrayPropertyEditor, and URLEditor;其中ClassEditor, FileEditor, LocaleEditor, and URLEditor已经被预注册了;而其他的则需要注册到一个类型为CustomEditorConfigurer的bean里面;
    你也可以创建自定义的PropertyEditor,通过实现java.beans.PropertyEditor接口或者继承java.beans.PropertyEditorSupport类;在PropertyEditorSupport类中,getAsText()用于将property转换为一个字符串值,setAsText()用于将字符串值转换为一个属性值,获取或设置属性值可以通过调用getValue()和setValue()方法;
    一个PropertyEditor只能针对一种类型,当它被放置到与这个类型相同的包中,并且类名是这个类型名+Editor,则Spring Container会自动搜索它,并不需要注册到CustomEditorConfigurer中。
  7. bean的定义可以被继承,被继承的bean称之为父bean,继承的bean称之为子bean;子bean继承父bean的bean定义,但不是全部;比如autowire属性就不能被继承;
    子Bean可以复写父bean的定义,如果在父bean中定义了class属性,并且子bean的类型和父bean的类型一样,则子bean不需要定义class属性;
    父bean可以是抽象的,只需设置abstract="true",Spring Container则不会初始化这个bean;
    父bean可以不用定义类型;
    如果子bean和父bean都有一个集合类型的属性,子bean可以自定义集合类型属性中的item,并添加继承的父bean集合类型属性里面所有item,只需在元素上面设置merge="true"
  8. 我们可以使用SpEL去配置Spring

转载于:https://www.cnblogs.com/cdutedu/p/4769146.html

Spring学习笔记之二----基于XML的Spring AOP配置相关推荐

  1. Spring框架学习笔记07:基于XML配置方式使用Spring MVC

    文章目录 一.Spring MVC概述 1.MVC架构 2.Spring MVC 3.使用Spring MVC的两种方式 二.基于XML配置与注解的方式使用Spring MVC (一)创建Spring ...

  2. Spring框架学习笔记09:基于XML配置方式搭建SSM框架实现用户登录

    文章目录 一.采用MVC架构 二.用户登录运行效果 三.基于XML配置方式搭建SSM框架实现用户登录 (一)创建数据库与表 - simonshop (t_user) 1.创建数据库 - simonsh ...

  3. Spring 学习笔记(二)Spring AOP

    前言 容器和AOP是Spring的两大核心.本文将来学习Spring AOP. AOP是什么? AOP在计算机科学领域还是相对年轻的概念,由Xerox PARC公司发明.Gregor Kiczales ...

  4. Spring学习笔记专题二

    专题二 (1)注解 1,注解的作用:给Java结构添加标记: 2,注解的使用:使用注解一般需要三方面参与: 1,注解类: 2,需要标记的目标类型: 3,用于处理目标类型的处理程序: 3,Retenti ...

  5. ArcGIS客户端开发学习笔记(二)——XML

    XML是Extensible Markup Language(可扩展标记语言)的简称.XML是一种以简单文本格式存储数据的方式,这意味着它可以被任何计算机读取.XML是在Internet上传书数据的绝 ...

  6. spring学习总结(十):基于 XML 的配置AOP

    基于 XML 的配置声明AOP 除了使用 AspectJ 注解声明切面, Spring 也支持在 Bean 配置文件中声明切面. 这种声明是通过 aop schema 中的 XML 元素完成的. 正常 ...

  7. Spring框架学习笔记10:基于XML配置方式SSM框架西蒙购物网

    文章目录 一.网站功能需求 二.网站设计思路 1.设计模式 2.网站前台 3.网站后台 4.购物流程图 三.网站运行效果 四.网站实现步骤 (一)创建数据库与表 1.创建数据库 - simonshop ...

  8. Spring学习笔记(二)——Spring相关配置属性注入Junit整合

    一.Spring的相关配置 1.1 Bean元素 class属性:被管理对象的完整类名 name属性:给Bean起个名字,能重复,能使用特殊字符.后来属性 id属性:给Bean起个名字,不能重复,不能 ...

  9. Spring学习笔记(二)

    基于注解的IOC (99条消息) Spring基于注解的IoC配置_Demon_gu的博客-CSDN博客 也称为DI(Dependency Injection),它是IOC的具体实现技术 总的都是要创 ...

最新文章

  1. python实战项目_11 个实战项目,掌握 Python 数据可视化
  2. setContentView( )方法
  3. 程序员如何日常解决错误问题
  4. 页面动态加载android,Android APP启动页面动态加载全部权限
  5. Unity3D 下载与安装
  6. 在C 语言中 下列变量命名不合规范的是,GJB9001C-2017内审员培训试题D卷(答案)
  7. Unity从Asset Store下载的资源安装包默认的保存位置及其修改
  8. Flutter 修改App的名称和图标
  9. asus z170 asrock b150点位图 换换口味欣赏欣赏
  10. 使用Pyecharts进行全国水质TDS地图可视化全过程8:绘制中国地图,使用timeline把多个值放在一个地图上
  11. 上线三年却很“鸡肋”的微信声音锁究竟做错了什么?
  12. xp无法访问win7计算机,xp系统访问win7共享文件夹提示无权限如何解决
  13. 极课大数据:培养超级学生,不如打造超级教师
  14. HC Bridge容器网络模式分享
  15. 09年河南高考零分作文:兔子,你就是一个傻B
  16. 小学计算机小知识,小学生电脑基础知识
  17. 数学7大定理比较,五点(驻、极、最、拐、间)比较,求极值问题(求根验证负数形式)
  18. ZZULIOJ.1102: 火车票退票费计算(函数专题)
  19. 宇信科技有限公司面试题目
  20. echarts实现中国地图各省背景根据数值大小变化的方法

热门文章

  1. echarts 图例太多放不下怎么办_段码液晶屏笔段太多,引脚放不下怎么办?
  2. es统计mysql 报表_Elasticsearch(简称ES)实现日报表、月报表、年报表统计,没数据补0...
  3. Windows注册表相关示例(重装Chrome、思迅条码软件、清除远程痕迹等)
  4. 人人网,微博,QQ空间,朋友圈,常用API调用实现方法
  5. 2018年面试准备汇总
  6. 76.Nodejs Express目录结构
  7. iOS【终极方案】精准获取webView内容高度,自适应高度
  8. 基于Bootstrap的Asp.net Mvc 分页的实现(转)
  9. 每天一道算法题(27)——找出元音字母并排序
  10. 电脑密码忘记怎么办??