zoukankan      html  css  js  c++  java
  • 01_基础知识

    1.Spring体系结构?

    主要分为5大模块:

    (1)数据访问和集成:JDBC、ORM、OXM、JMS、事务管理。

      Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查异常型异常转换为非检查异常,为整合各种之久层框架提供给了基础。

      其次,Spring通过模板化技术对各种数据库访问技术进行了薄层的封装,将模式化的代码隐藏起来,简化了数据库访问的代码。

      这样,Spring就建立了和数据形式访问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明式事务的功能。

    (2)Web及远程操作:MVC、Web Service、Portlet

      该模块建立在Application Context 模块之上,提供了Web应用的各种工具类。如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中。

      其次,该模块还提供了多种面向Web的功能,例如透明化文件上传、Velocity、FreeMarker、XSLT的支持。

      此外,SPring还可以整合Struts2、WebWork等MVC框架。  

    (3)测试框架

    (4)AOP:Spring AOP、Aspects

      Aop是进行横切逻辑编程的思想,它开拓了思考问题的思路。

    (5)IoC:Bean、Context、表达式语句

      Spring核心模块实现了IoC的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方法进行依赖关系的描述,由IoC容器负责依赖之间的创建、拼接、管理、获取等工作。

      BeanFactory接口是Spring框架的核心接口,它实现了容器许多核心的功能。

      Context模块构建与核心模块之上,扩展了BeanFactory的功能,添加了il8n国际化、Bean生命周期的控制、框架事件体系、资源加载透明化等多项功能。该模块还提供了许多企业级服务的支持,例如邮件服务、任务调度、JNDI定位、EJB集成、远程访问等。ApplicationContext是Context的核心接口。

      表达式语言是统一表达式语言(unified EL)的一个扩展,该表达式语言用于查询和管理运行期的对象,支持设置和获取对象属性,调用对象方法、操作数组、集合等。还提供了逻辑表达式运算、变量定义等功能,使用它可以方便的通过表达式串和SpringIoC容器的交互。

    2.理解IoC(Inversion of Control,控制反转)

      了解DI(Dependency Injection) :依赖注入,不管是控制层的Action对象,业务层的Service对象,还是持久层的DAO对象,都可以在Spring的管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,Action对象无需关心Service对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大减少。

      之所以被称为依赖注入,因为被调用者实例的工作通常由Spring容器完成,然后注入调用者。程序运行过程中,如果需要调用一个对象协助时,无需在代码中创建被调用者,而是依赖外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持POJO之间依赖关系的管理。

      DI(依赖注入)和Ioc(控制反转)是同一个概念。

      IoC:当某个角色(一个java实例,调用者)需要另一个角色(另一个java实例,被调用者)的协助时,在传统的程序设计过程中,一般由调用者来创建被调用者的实例。在Spring中,创建被调用者的工作不再是由使用者完成,因此成为控制反转。也就是说,所有的组件都是被动的,所有的组件和调用都是有容器负责,并由容器负责管理。

    3.Spring注入

    Spring注入是在启动Spring容器加载Bean的时候,完成对变量的赋值行为。

    常用的两种注入方式:设置注入 和 构造注入。

    4.Bean的作用域

    singleton:单例,指一个Bean容器中值存在一份。

    prototype:每次请求(每次使用)都会创建新的实例,destroy方式不生效。

    request:每次http请求创建一个实例且仅在当前request内有效

    session:同上,每次http请求的创建,当前session内有效

    global session:基于portlet的文本中有效(portlet定义了global session),如果是在web中,同session。

    5.Bean的生命周期

    (1).定义

    (2).初始化

      实现org-springframework.beans.factory.InitializingBean接口,覆盖afterPropertySet方法

      配置init-method

    (3).使用

    (4).销毁

      实现org-springframework.beans.factory.DisableBean接口,覆盖destroy方法。

      配置destory-method

    6.Spring中Bean的生命周期

    (1)Singleton作用域

      当一个Bean的作用域设置为singleton,那么Spring IoC容器中只会存在一个共享的Bean实例,并且所有对Bean的请求,只要id与该Bean定义相匹配,则会返回Bean的同一实例。当把一个Bean定义设置为singleton作用域时,Spring IoC容器只会创建该Bean的唯一实例。这个单例会被存储到单例缓存中,并且所有针对该Bean的后续请求和引用都将返回被花村的对象实例。

    (2).prototype作用域

      prototype作用域部署的Bean,每一次请求(将注入到另一个Bean中,或者以程序的方式调用容器的getBean()方法)都会产生一个新的Bean实例。相当于一个new操作。对于prototype作用域的Bean,有一点非常重要,那就是Spring不能对一个prototype Bean的整个生命周期负责,容器在初始化、配置或者是装配完一个prototype实例后,将它嫁给客户,随后就不管了。

  • 相关阅读:
    springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    OA办公系统 Springboot Activiti6 工作流 集成代码生成器 vue.js 前后分离 跨域
    java企业官网源码 自适应响应式 freemarker 静态引擎 SSM 框架
    java OA办公系统源码 Springboot Activiti工作流 vue.js 前后分离 集成代码生成器
    springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    java 视频播放 弹幕技术 视频弹幕 视频截图 springmvc mybatis SSM
    最后阶段总结
    第二阶段学习总结
    第一阶段学习总结
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5573038.html
Copyright © 2011-2022 走看看