1.1 什么是Spring

  Spring是分层的JavaSE/EE full-stack(一站式)轻量级开源框架,以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为内核。

* 分层:

* SUN提供的EE的三层结构:web层、业务层、数据访问层(持久层,集成层)

* Struts2是web层基于MVC设计模式框架.

* Hibernate是持久的一个ORM的框架.

* 一站式:

* Spring框架有对三层的每层解决方案:

* web层:Spring MVC.

* 持久层:JDBC Template

* 业务层:Spring的Bean管理.

1.2 Spring的核心

  IOC是Inverse of Control的缩写,意思是控制反转,将对象的创建权(实例化) 交予spring框架创建过程。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

  AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码,使用springAOP完成功能:性能监控、事务管理、日志记录、缓存等,是面向对象(OO)的功能延伸,用来解决面向对象中的一些问题。

  AOP的相关术语如下:

1.Target:目标对象,被代理对象。例如:UserService

2.JoinPoint:连接点,目标对象中被代理的方法(掉)。例如:saveUser()/updateUser/deleteUser/findUser

3.PointCut:切入点,实际上被代理的方法,及实际上的连接点。例如:saveUser

切入点是连接点子集

4.Advice:  分类:前置通知、后置通知,环绕通知等,通知是对方法进行增强。

5.Introduction:引介,特殊的通知。对类直接增强。给类添加方法,修改不要方法等。

6.Weaving :织入:将通知 引用 到 目标对象上 过程。及将通知与切入点关联过程。

7.Proxy:代理,目标对象Target生成代理对象,于是就可以代码增强了。

1.3 Spring的优点

1.方便解耦,简化开发

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

2.AOP编程的支持

  * Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

3.声明式事务的支持

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

4.方便程序的测试

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

5.方便集成各种优秀框架

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

6.降低JavaEE API的使用难度

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

Spring知识点总结的更多相关文章

  1. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

  2. Spring知识点回顾(07)事件发布和监听

    Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...

  3. Spring知识点回顾(01)Java Config

    Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...

  4. Spring知识点复习

    Spring知识点复习 一.专业术语 侵入式设计 引入框架,对现有的类的结构有影响,即需要实现或继承某些特定类.如:Struts框架 非侵入式设计 引入框架,对现有的类结构没有影响.如:Hiberna ...

  5. <转>Spring 知识点提炼

    Spring 知识点提炼 1. Spring框架的作用 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依 ...

  6. Spring知识点总结(三)之注解方式实现IOC和DI

        1. 注解概念        所谓注解就是给程序看的提示信息,很多时候都用来作为轻量级配置的方式.        关于注解的知识点,参看java基础课程中java基础加强部分的内容.    2 ...

  7. Spring知识点提炼

    原文出处: 朱小厮 1. Spring框架的作用 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对 ...

  8. Spring知识点总结大全(2)

    3.Spring的AOP 一.AOP(Aspect-oriented programming,面向切面编程): 什么是AOP? 定义:将程序中的交叉业务逻辑提取出来,称之为切面.将这些切面动态织入到目 ...

  9. Spring知识点总结大全(1)

    1.Spring的分层结构 1.Presentation layer(表示层) (1) 表示逻辑(生成界面代码) (2) 接收请求 (3) 处理业务层抛出的异常 (4) 负责规则验证(数据格式,数据非 ...

随机推荐

  1. 认知的SSH

    认知的SSH 实习了三个月,对着SSH有着一定的认识了,就以自已认识的大概思路写一篇文章吧,留给以后的自已,也恳请各位博友们如果看到我的认识有过错的地方能帮我指正过来! 在写正文之前,先说说我这段时间 ...

  2. jQuery Easing 动画效果扩展

    jQuery API提供了简单的动画效果如淡入淡出以及自定义动画效果,而今天我给大家分享的是一款jQuery动画效果扩展增强插件jquery.easing.js,使用该插件可以实现直线匀速运功.变加速 ...

  3. easyui tree 判断是否是叶子节点

    <input class="add" id="add" style="display: none" type="submit ...

  4. oracle exp、imp实现导出导入

    一.说明    oracle 的exp/imp命令用于实现对数据库的导出/导入操作; exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件; imp命令用于把本地的数据库dmp文件从本地导 ...

  5. 竞价广告系统-ZooKeeper介绍

    ZooKeeper介绍 为了讲述的完整性,介绍一下ZooKeeper.ZooKeeper在Index和Ad Server里使用比较多,虽然它可能没有google的Chubby好,但它是开源的工具.举一 ...

  6. CenOS下安装Eclipse并配置PyDev

    为方便安装,使用SecureCRT来操作CentOS 1. 更改网络配置 虚拟机使用桥接方式上网(默认是NAT方式) 2. 启动后让虚拟机上网 3. 启动终端查看ip地址 4. 使用SecureCRT ...

  7. 简单的HTTP过滤模块

    简单的HTTP过滤模块 一.Nginx的HTTP过滤模块特征 一个请求可以被任意个HTTP模块处理: 在普通HTTP模块处理请求完毕并调用ngx_http_send_header()发送HTTP头部或 ...

  8. mybatis3.4测试CRUD

    导入包 H:\jar\jdbc\mysql-connector-java-5.1.13-bin.jarH:\jar\mybatis\mybatis-3.4.1\mybatis-3.4.1.jarH:\ ...

  9. 由IEnumerable和IEnumerator的延伸

    相信大家在学习c#的时候,经常会看到IEnumerable.IEnumerator这样的接口或返回类型,在写代码时经常会对数组或List集合进行遍历.那IEnumerable和IEnumerator是 ...

  10. Centos6.3不能使用yum install安装gcc编辑器解决办法

    mv /var/lib/rpm/__db* /tmp rpm --rebuilddb yum clean all