spring

bean是工厂模式   beanFactory  实现是XmlBeanFactory  根据xml中定义加载beans

BeanFactory是什么时候调用bean,就什么时候创建。applicationContext是一次性创建好所有Bean

spring的作用域  <socpe>属性 

          默认是singleton(单例)       

          可选protype  (多个实例)  request(每次请求生成一个)  session(同一个会话共享一个Bean)    globe-session()

依赖注入: 我的理解就是类中参数值的设置非显示的代码中设置,而是通过xml文件设置。    A类中有参数B b,把这个看成参数理解就可以了。      

<bean id="A" class="">  
<!--根据name名称-->
<property name="name" value="crystal"></property>    set注入
</bean>

<bean id="B" class="">
<!--必须与构造器中参数顺序一致-->
<constructor-arg value="hhh"></constructor-arg>   构造器注入
</bean>

AOP:   感觉就是对每个逻辑业务方法进行增强,添加执行前,和执行后的其他方法,如log。  

servlet的匹配方式 /xxx/*(路径映射)    /       *.do(扩展名映射)       注意/xxx/*.do  这种方式是错误的,就是说扩展名映射和路径映射不能同时使用

servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;  

spring的生命周期:实例化Bean;设置对象属性(DI);处理aware接口:  实现了BeanName接口,则调用setBeanName()方法。实现了BeanFactoryAware接口,则调用setBeanFactory()方法。实现了ApplicationContextAware接口,则调用setApplicationContext()方法; BeanPostProcessor,   实现了BeanPostPrcesssor接口(功能是对Bean进行一些自定义),调用postProcessBeforeIntialization()方法。在初始化结束时调用;InitializingBean与Ini-method,

xml中配置了init-method属性,则会调用该方法;实现了BeanPostProcessor接口,那么调用postProcessAfterInitialization()方法;实现了DisposableBean接口,那么destory();配置了destory-method属性,那么调用销毁方法。

@auowired   bytype自动装配

@Resource  byname不行的话,再bytype

代理模式: 是对原有方法的扩展,原本返回什么,代理后还是返回什么

public Object invoke(MethodInvocation in) throws Throwable
{
  in.proceed(); //原有方法在这里执行
}

spring aop的代理:   <aop:aspectl-autoproxy>开启自动代理

 @aspectj 开启aspectj的注解  @component生成bean      

      在log()方法上@Before(value="execution(表达式)")

AspectJ的静态代理:   编译时生成字节码

  @aspectj 开启aspectj的注解

      在log()方法上@Before(value="execution(表达式)")

原文地址:https://www.cnblogs.com/GlazedCat/p/10555308.html