自己之前在学习springboot,做了一点东西后,返过来系统的学习spring,顺便写一些读spring in action的总结
装配Bean
对于装配bean来说,书中给了三种方式:自动装配(@component和@autowired) java代码装配(写配置文件自己返回实例bean) XML装配。当然最好就是用自动装配,其次是用java装配,xml装配基本不怎么用。
对于书中提到的高级装配:环境和profile 之前学习springboot时,是使用appliation.xml 配置 dev pro loc 等不同的环境,大同小异。后面一些做东西的时候没有用到啥的,读得时候没有很深的体会。等回头遇到了,再来看看。
面向切面
上面这个图就很形象,比如在处理student业务逻辑的时候,中间会有涉及安全之类的方法调用,至于如何调用,下面有一些概念。
1.通知
分为前置 后置 返回通知 异常通知 环绕通知等
2.连接点
个人感觉 调用方法可以关联的地方
3.切点
调用方法关联在何处
也可以看上面的这个图,在调用的目标对象的时候,得先经过一个代理类,如果你这个切面啥的,它会给你转去调用切面设置的方法(比如你想调用吃饭方法,你之前设置了一个前置关联的洗手方法。等你调用的吃饭方法的时候,它会自动执行洗手方法,这个过程不用你管)
编写切点
利用注解定义切面
上图多次定义了perform方法切点
上图利用注解定义一个可重用的切点
环绕通知
注意ProceedingJoinPoint型参数jp,jp.proceed()方法的执行,代表了被通知的方法的执行。
通过注解引入新功能
这块没怎么读懂,@DeclareParents这块没明白。
最后,当Spring AOP不能满足需求时,可以转向更强大的AspectJ