zoukankan      html  css  js  c++  java
  • 01-Spring概述

    1.spring是什么

    Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

    2.Spring的发展历程

    1997年IBM提出了EJB的思想
    1998年,SUN制定开发标准规范EJB1.0
    1999年,EJB1.1发布
    2001年,EJB2.0发布
    2003年,EJB2.1发布
    2006年,EJB3.0发布
    Rod Johnson(spring之父)
    Expert One-to-One J2EE Design and Development(2002)
    阐述了J2EE使用EJB开发设计的优点及解决方案
    Expert One-to-One J2EE Development without EJB(2004)
    阐述了J2EE开发不使用EJB的解决方式(Spring雏形)
    2017年9月份发布了spring的最新版本spring 5.0通用版(GA)

    3.spring的优势

    方便解耦,简化开发
    通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
    AOP编程的支持
    通过Spring的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以
    通过AOP轻松应付。
    声明式事务的支持
    可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。
    方便程序的测试
    可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
    方便集成各种优秀框架
    Spring可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的直接支持。
    降低JavaEE API的使用难度
    Spring对JavaEE API(如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低。
    Java源码是经典学习范例
    Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源代码无意是Java技术的最佳实践的范例。

    4.spring的体系结构

    Core Container 核心容器
    1.Beans:管理Bean
    2.Core:核心
    3.Context:上下文(配置文件)
    4.SpEL:表达式

    AOP:切面编程
    Aspects:集成自AspectJ框架,主要是为Spring提供多种AOP的实现方式。
    Instrument:基于java SE中的java.lang.instrument进行设计,目的是协助实现AOP。
    Messaging:负责为spring框架集成一些基础的报文传送应用。

    Data Access/Integration:数据访问与集成
    jdbc:jdbc连接数据为库,当然有很多种方式,比如jdbc模板方式、关系数据库对像化方式、SimpleJdbc方式、事务管理来简化JDBC编程。
    Transactions:事务控制模块
    orm:ORM框架支持模块。
    OXM:将java对象映射成XML数据,或将XML数据映射成java对象。
    JMS:发送和接收消息。

    Web:web组件由spring-web、spring-webmvc、spring-websocket和spring-webflux4个模块组成。

  • 相关阅读:
    NoSQL之Redis入门笔记
    运维甩锅神器---Jumpserver
    sersync+rsync=实时异步备份
    gitlab+jenkins=自动化构建
    python笔记07-----打包模块(shutil,zipfile,tarfile)
    python笔记06-----常用模块(time,os,sys,random)
    python笔记09-----装饰器,生成器,迭代器
    python笔记05-----函数
    机器学习3_EM算法与混合高斯模型
    机器学习2-极大似然估计与贝叶斯估计
  • 原文地址:https://www.cnblogs.com/itmu89/p/12045404.html
Copyright © 2011-2022 走看看