zoukankan      html  css  js  c++  java
  • spring初始(介绍、核心架构)

    1、spring介绍

    Spring是个java企业级应用的开源开发框架。主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

    (1)spring与三层架构的关系

     spring负责管理项目中的所有对象,是一个一站式的框架,容器(用来形容它用来存储单例的bean 对象这个特性)中的对象决定了spring的功能。

    (2)特点

    是一个开源框架

    轻量级(与EJB对比),依赖资源少,消耗的资源少

    (3)分层

    web层:struts、SpringMVC

    service层:spring

    dao层:hibernate、mybatis、jdbcTemplate、springdata

    spring是一个分层的一站式(每个层都提供解决方案)框架。

    (4)核心

    控制反转IoC和面向切面编程AOP。

    (5)优点

    方便解耦,简化开发(高内聚低耦合):

    • Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理

    轻量:

    • Spring是轻量的,基本的版本大约2MB

    控制反转:

    • Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象

    面向切面的编程(AOP):

    • Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开,可以方便的实现对程序进行权限拦截、运行监控等功能

    容器:

    • Spring包含并管理应用中对象的生命周期和配置

    MVC框架:

    • Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品

    事务管理:

    • Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。

    声明式事务的支持:

    • 只需要通过配置就可以完成对事务的管理,而无需手动编程

    方便程序的测试:

    • Spring对Junit4支持,可以通过注解方便的测试Spring程序。

    方便集成各种优秀框架:

    • Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Stmuts、Hibemate、MwBtis、Quartz等)的直接支持

    降低JAVAEE API的使用难度:

    • Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    异常处理

    • Spring提供方便的APl把具体技术相关的异常(比如由JDBC,HibernateorJDO抛出的)转化为一致的unchecked异常

    2、spring核心架构

    Spring框架主要由六个模块组成,在开发时可以根据需要选择合适的模块。

     

     (1)核心容器模块:提供了框架的最基础部分,是其它组件的基础,提供了IoC容器、Spring框架的基础核心工具类。

    • beans:管理bean
    • core:核心
    • context:上下文(配置文件)
    • SpEL(Spring Expression Language):SpEL表达式

     (2)数据访问/集成模块:减少了JDBC代码量、提供声明式事务管理的功能等。

    • JDBC:JDBCTemplate
    • ORM:整合Hibernate,Spring 通过提供ORM模块,支持我们在直接JDBC 之上使用一个对象/关系映射映射(ORM)工具,Spring 支持集成主流的 ORM 框架,如Hiberate,JDO 和iBATISSQLMaps。Spring 的事务管理同样支持以上所有ORM 框架及JDBC。
    • Transacions:事务管理

     (3)Web模块:封装了Web应用开发使用Spring框架时所需要的核心类。Spring 的WEB模块是构建在applicationcontext 模块基础之上,提供一个适合 web 应用的上下文。这个模块也包括支持多种面向web 的任务,如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象。它也有对JakartaStruts 的支持。

    • web:web开发

     (4)AOP和Instrumentation模块:Instrumentation对服务器的代理接口。

    • AOP:面向切面编程,AOP 模块用于发给我们的Spring 应用做面向切面的开发,很多支持由 AOP 联盟提供,这样就确保了Spring 和其他AOP框架的共通性。这个模块将元数据编程引入Spring。
    • Aspects:AOP框架

     (5)Messaging模块:基于消息发送应用的基础。

     (6)测试模块:对JUnit等测试框架的简单封装。

  • 相关阅读:
    iOS数据持久化—FMDB框架的简单介绍
    iOS数据持久化—SQLite常用的函数
    多段图动态规划dp
    Cucumber测试驱动开发
    敏捷开发XP
    Android 小票打印USB
    TextInputLayout 用法
    Snackbar 提醒
    PermissionDispatcher 运行时权限框架
    Tinker 热修复
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12590815.html
Copyright © 2011-2022 走看看