关于Spring的零碎了解(一)

来源:互联网 发布:postgresql mysql 编辑:程序博客网 时间:2024/05/22 01:42

由于最近在看一些关于Spring框架的书,有些小概念还是觉得记下来比较方便。。

  1. Spring框架最核心的其实就是IOC容器了,虽然AOP也是核心,但其实AOP的实现也在一定程度上依赖了IOC,关于IOC容器的理解,其实就是你在写应用时,必然会在所写类的方法里调用到其他对象的一些方法来实现自己的功能,那调用那些对象的方法时,必然是需要先生成那些方法所在类的一个对象,而IOC完成的就是帮助你去生成这个对象,而不是你自己在代码中new出来,这样其实大大降低了代码之间的耦合度。
  2. 其实在Spring对于IOC的具体实现表现在它的一个接口BeanFactory,这就是具体化的IOC容器,这个接口提供了一个IOC的基本功能,而另外一个则是ApplicationContext,这是在BeanFactory的基础之上又实现了一系列的接口,是IOC容器的高级形态。
  3. DefaultListableBeanFactory是Spring中默认的功能完整的IOC容器。XmlBeanFactory就是继承自它并在之上添加了新功能,使用xml文件来定义BeanDefination。
  4. 对于Spring MVC模块部分,Spring 本身并不提供ORM的独立解决方案,虽然Spring自身提供了JDBCTemplate,对于数据库操作提供了简单的封装,和hibernate相比还是太弱了,所以Spring提供了hibernateTemplate来实现hibernate的封装,另外还支持Ibatis。
  5. 在web容器的配置文件中,添加dispatcherServlet以及对应的url mapping 信息,还需要配置contextConfigLocation来确定IOC容器配置文件的地址,还有一个则是contextLoaderListener监听器,这是作为Spring MVC的一个启动类。
  6. 关于Spring MVC的启动流程:
    1. Web容器启动初始化
    2. 由于contextLoaderListenerde 的监听,根据IOC配置文件创建根IOC容器xmlWebApplicationContext,然后初始化。
    3. 调用refresh()方法,这标志着IOC容器正式启动
    4. 根据IOC配置文件地址定位(根据地址查找到对应的IOC容器配置文件),载入(解析配置文件并转换成IOC支持的数据结构形式BeanDefination),注册(将所有的BeanDefination以键值对的形式保存到一个HashMap中,IOC容器就是通过这个Map来管理所有的Bean的)
    5. IOC的初始化完成之后,则被作为web容器的根IOC容器被绑定到servletContext上,以便调用
    6. DispatcherServlet会建立自己的IOC容器
  7. 在向IOC容器getBean时,IOC容器会首先向其双亲IOC去getBean。
  8. dispatcherServlet调用doService()->doDispatch()->根据handlerMapping查找到对应的Controller来进行处理
  9. Spring中提供了JdbcTemplate类来完成基本的数据库操作,基本方法execute,query,update

0 0