zoukankan      html  css  js  c++  java
  • Spring

     

    1. spring简介

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

    2. Spring与解耦合

    Spring根据功能的不同,将代码划分为两类:主业务逻辑与系统级服务(交叉业务逻辑)。主业务逻辑间,及主业务逻辑与系统级服务间的耦合度是较高的。Spring对于前述两种较高的耦合度,采用了两种不同的技术进行解耦。使用IoC解耦主业务逻辑间的耦合度,使用AOP解耦主业务逻辑与系统级服务间的耦合度。

    3.Spring作用

    Spring致力于提供一种方法管理你的业务对象。

    Spring的主要目的是使JavaEE易用和促进好编程习惯。

    Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

    4.Spring起源

    Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的特点。

    传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务、事务处理等。

    5.Spring优点

    方便解耦,简化开发
    Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
    AOP编程的支持
    Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
    声明式事务的支持
    只需要通过配置就可以完成对事务的管理,而无需手动编程
    方便程序的测试
    Spring对Junit4支持,可以通过注解方便的测试Spring程序
    方便集成各种优秀框架
    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
    降低JavaEE API的使用难度
    Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    6.Spring体系结构

    Spring 框架是一个分层架构,它包含一系列的功能要素并被分为大约20个模块。这些模块分为Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation和测试部分,如下图所示:

    7.Spring与IOC

    IoC,Inversion of Control,控制反转。将传统上由程序代码直接操控的对象创建权交给容器,通过容器来管理对象的生命周期。控制反转是对对象控制权的转移,从代码本身转移到了容器。

    IoC是一种思想,是一个概念,其实现方式有很多。当前比较流行的实现方式有两种:依赖注入与依赖查找。

    l 依赖查找:DL,Dependency Lookup,代码中需要给出目标对象的存放路径,系统会根据路径到容器中查找相应的对象。典型的应用是JNDI(Java Naming and Directory Interface,Java命名与目录接口,这是一个第三方容器,是一个服务器)。

    l 依赖注入:DI,Dependency Injection,代码中无需给出目标对象的定位路径,只需给定对象名称或类型,系统就会直接到容器中进行查找。是目前最优秀的解耦方式。典型应用是Spring。

     

    8.spring与事务

    这是典型的AOP的应用。

    1.Spring事务管理的API

    (1) 平台事务管理器接口

    A、 常用的实现类

    l DataSourceTransactionManager:使用JDBC、MyBatis、iBatis等进行持久化时使用。

    l HibernateTransactionManager:使用Hibernate进行持久化时使用。

    B、 Spring回滚方式

    Spring事务默认的回滚方式是:发生运行时异常回滚,发生受查异常提交。

    (2) 事务定义接口

    MySQL默认的事务隔离级别是可重复读;Oracle默认的事务隔离级别是读已提交。

    事务传播行为是指,处于不同事务中的方法在相互调用时,执行期间事务的维护情况

  • 相关阅读:
    celery 转自:https://www.cnblogs.com/pyedu/p/12461819.html
    k8s 学习笔记
    linux 学习笔记3
    yaml initc
    vi 块操作
    curl
    知名IT互联网公司
    ajax 上传文件给webapi(带basic认证)
    C# 后台请求api
    mvc 母版页保持不刷新
  • 原文地址:https://www.cnblogs.com/liule66/p/12228094.html
Copyright © 2011-2022 走看看