spring 笔记

1,在给每个属性设值时 ,找到对应的 PropertyEditor,  转换成正确的类型设值 。

CustomEditorConfigurer检查到Bean包含需要转换的属性,并且该属性在容器中的值是字符串时,它就会调用setAsText(String text),把字符串转换成目标类的实例。

2,advice跟advisor的区别:
 advice:    它是interceptor, 类型是Around, After, Before, Throw类型中的一种。
 advisor:  advisor也是interceptor,从某种意义上,可以理解它也是一种advice,却可以对一个对象的方法进行过滤。符合某些条件的方法该interceptor才生效。
比如RegexpMethodPointcutAdvisor就可以进行正则表达式的配置。get.*表示该interceptor只对getxxx的方法有效。

3. validator     Errors    ValidationUtils

  Errors errors = new BindException(p, "person");               // p为要验证的对象。
  Validator personValidator = new PersonValidator();         
  personValidator.validate(p, errors);     //验证完后把错误存入errors.


   ValidationUtils.rejectIfEmpty(e, "name", "name.empty");

4   Introduction

假设要为一个类添加一个Lockable接口,首先建一个类继承DelegatingIntroductionInterceptor和实现Lockable接口,

再建一个advice继承DefaultIntroductionAdvisor,  在这个类中把接口和相应的Interceptor关联起来。最后编写配置文件。这个配置就是aop代理。然后 就 可以利用这个接口了。

其实际是在新的代理类里增加了新的属性和方法,在代理类里面执行新的方法产生的影响来作用于目标类。

你可能感兴趣的:(spring,AOP,bean,正则表达式)