Spring简介

  1. Spring的特点

    Spring (春天,绿色)  容器
    01.Java EE开发者的春天,大大简化了代码量
    02.使用IOC来降低主业务之间的耦合度
    03.使用AOP来降低主业务和系统级业务之间的耦合度
    04.非侵入式框架
       001.如果我们要实现某些功能,但是必须实现或者继承某个接口或类!
           这种方式就是 侵入式!
       002.如果我们要实现某些功能,不需要显式的实现或者继承某个接口或类!
           我们感觉不到在使用框架的某个功能!框架自身会自动映射!
    05.一站式开发框架
        001.先去A饭店吃饭
        002.再去B娱乐中心唱歌
        003.再去C会所按摩

    现在直接去D商务会所 ==》完成 吃饭 唱歌 按摩 三个功能!

Struts2               Spring  mvc

Spring                Spring

Hibernate           Spring JDBC

  2. Spring的核心

    1.IOC

      1.IOC (Inversion  Of  Control,控制反转)
          在service层创建出来了dao层的实例对象! 控制权在service! 安全吗?耦合不?不好!!!
          现在创建dao层对象的任务 交给Spring容器管理!控制权在Spring容器!
          控制权由我们程序本身交给spring容器的这个行为====》控制反转!

    Spring容器是咩???
         01.负责创建项目中所有的对象(bean)
         02.管理对象之间的各种关系
         03.spring的核心配置文件

     DI(Dependency  Injection,依赖注入)
        service层的new  StudentDaoImpl()被删除,dao的对象是Spring容器来创建的!
        Spring容器把创建的dao层对象 通过setDao()注入到对象中!这个过程就是依赖注入!
      DI是IOC的一种具体实现!

  2.AOP

    2.AOP(Aspect Oriented Programing,面向切面编程)  底层是动态代理设计模式
       01.切面 (Aspect):系统级业务,对主业务进行增强的方法!
       02.切入点 (PointCut): 把系统级业务织入到主业务上,主业务方法就叫切入点
       03.连接点 (JoinPoint):所有的主业务方法
       04.织入 (Weaving):把系统级业务放到主业务上的过程
       05.目标对象 (Target):  调用主业务的对象
           StudentDao dao=new StudentDaoImpl();
           dao就是目标对象
           dao.eat();
       06.通知 (Advice):是切面的一种实现,定义了织入的时间!
       07.顾问 (Advisor):是切面的一种实现,定义了织入的时间,位置!
                         通知是顾问一个属性! 顾问包含通知!

3.Spring体系图

    

    欲知后事如何,请看下集

Spring(一)--Spring简介的更多相关文章

  1. Spring 系列: Spring 框架简介 -7个部分

    Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...

  2. Spring Web Flow 简介

    Spring Web Flow 简介 博客分类: 转载 SSH 最近在TSS上看到了一片介绍Spring Web Flow的文章,顺便就翻译了下来,SWF的正式版估计要到6月份才能看到了,目前的例子都 ...

  3. Spring 系列: Spring 框架简介(转载)

    Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...

  4. Spring中AOP简介与切面编程的使用

    Spring中AOP简介与使用 什么是AOP? Aspect Oriented Programming(AOP),多译作 "面向切面编程",也就是说,对一段程序,从侧面插入,进行操 ...

  5. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

  6. spring 拦截器简介

    spring 拦截器简介 常见应用场景 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等.2.权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直 ...

  7. Spring HTTP invoker简介

    Spring HTTP invoker简介 Spring HTTP invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用(意味着可以通过防火墙),并使用java的序列化机制 ...

  8. Spring Boot 之Spring data JPA简介

    文章目录 添加依赖 添加entity bean 创建 Dao Spring Data Configuration 测试 Spring Boot 之Spring data JPA简介 JPA的全称是Ja ...

  9. spring cloud要点简介及常用组件

    spring cloud基于spring boot spring cloud是通过包装其他技术框架实现的,例如OSS组件,实现了一套通过基于注解.java配置和基于模板开发的微服务框架. spring ...

  10. Spring Framework体系结构简介

    说明:以下转自Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-c ...

随机推荐

  1. php上传大文件1G

    前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...

  2. TTTTTTTTTTTTTTTTT CF #182 div1 B floyd

    题意: 有 n(3≤n≤100) 个站点,当第一次到达站点 u 的时候会增加寿命 au(1≤au≤103),题目给了 n 个站点的二位空间坐标,每两个站点之间的距离为曼哈顿距离(dis(i, j)=| ...

  3. Socket编程-基础使用

    最后更新:2019-10-25 一 基本概念 socket, 又称为"套接字"或者"插座". 是操作系统提供的一种进程间通信机制.目前大多用于不同网络设备之间的 ...

  4. [CSP-S模拟测试]:最大值(数学+线段树)

    题目背景 $Maxtir$最喜欢最大值. 题目传送门(内部题128) 输入格式 第$1$行输入四个正整数$n,m,q$. 第$2$至$n+1$行中,第$i+1$行输入魔法晶石$i$的三种属性$(x_i ...

  5. Wordpress可以用来做什么?

    WordPress本身只是一款开源的.基于PHP的博客软件,但是由于WordPress的源码开源.结构优良.插件丰富.主题繁多,以至于是 WordPress成为世界上最流行的博客程序.<Word ...

  6. Struts2理解?

    (1)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts 2以WebWork为核心,采 ...

  7. SSM三大框架整合配置详解

    首先,导入框架所需要的全部jar包(此处省略...........) 第一步:先从mybatis框架开始 我们只需要在mybatis的核心配置文件sqlConfigXml里写上这么一段话,代表的是给p ...

  8. 【python学习】字符串相关

    # -*- coding: utf-8 -*- # ========================================================================== ...

  9. leetcode-easy-math-13 Roman to Integer

    mycode  97.21% class Solution(object): def romanToInt(self, s): """ :type s: str :rty ...

  10. 2.进行model和log的路径创建

    第一步:使用datetime.strftime(datetime.now(), '%Y%m%d-%H%M%S') 用于生成当前时间 第二步: 使用os.path.join() 将文件的路径与subdi ...