Spring学习总结
1.spring是什么?就是让对象与对象(模板与模板)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置 内部通过反射区动态的组装对象)Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。内部最核心的就是IOC了,动态注入,让一个对象的创建不用去NEW了,可以自动的生产,这就是利用java里的反射,反射其实就是在运行时动态的去创建调用对象,Spring就是在运行时,跟XML Spring的配置文件来动态的创建对象,和调用对象里的方法的。Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模板)从而达到对一个模板扩充的功能,这些都是通过配置类达到的。
2.IOC(inversion of control) DI(dependency injection)?反转控制和依赖注入是同一概念不同角度的描述。以前都是需要什么对象就直接new,但是在Spring容器里面是先通过反射机制实例化需要对象,方向发生了变化,并且控制权交给了Spring容器------这就是反转控制。依赖注入也就是当我们在一个对象当中使用到另外一些对象,则我们要通过注入的方式把这些对象联系起来。大大降低了传统对象与对象之间的耦合度。
3.在写代码时候需要注意的一些小细节:1).在XML文件里面如果你是采用set注入,则setXXX方法名与property的name属性一一对应(不包括set) 2).
4.学习aop之动态代理和静态代理的区别?静态代理就是需要在静态代理类里面实现代理对象的接口,而动态代理有invoke方法进行中转,灵活的调用需要的方法。动态代理只能代理接口,代理类都需要实现InvocationHandler类,实现invoke方法,该invoke方法就是调用被代理的接口的方法时别调用的,该invoke方法返回的只是代理接口的实现类。
5.在配置自定义的切面的时候,如果没有AroundMethod,则通知顺序与配置文件当中的顺序无关,反之 有AroundMethod的时候 通知顺序则与配置文件当中的顺序有关。例如:1.) 配置文件的通知顺序是 around》》》before》》》after 则通知的顺序是 前置通知嵌在了围绕通知里面 后置通知却跳出了围绕通知,如果想要后置通知嵌在围绕通知里面,只需要改变before和after的顺序即可 2).配置文件的通知顺序是 before》》》around》》》after 则通知的顺序是around嵌在了前置通知和后置通知之间,如果改变前置通知和后置通知的顺序,则前后通知分别嵌在了围绕里面。3).配置文件的通知顺序是 before》》》after》》》around 则通知的顺序是 around嵌在了前置通知和后置通知之间 ,但是改变before和after的顺序则后置通知嵌在了around里面