经典三层框架初识(二)---Spring 1.简介

  • spring简介

    • 什么是spring

      • 产生于2003年,轻量级的javase/ee一站式开源框架.
        • 何为轻量级呢?这个是需要一个参照物的.就是ejb:企业级 javabean
        • javabean:要求就是编写一个类,必须有私有属性,getset方法,还必须有无参构造--其实就是一个满足上面要求的java类,就是javabean
        • 一站式:是在三个层都有自己的框架体现,各个层都涉及到了
        • 开源框架:就不多说了 代码开源
    • spring在三层架构中的地位

      • 现在spring在java框架里面的地位也是非常高的.

        • 表示层       : SpringMVC/struts2

        • 业务逻辑层:Spring framework

        • 数据持久层:Mybatis/Hibernate(我们前面用的Mybatis)  jdbcTemplate是spring在这个层的体现

        • 我们发现三个层spring都涉及.可想而知它的影响是很大的.我们上面说的spring主要处理业务逻辑层,以及各个层之间的连接问题,如何相互调用,如何来集成..但是我们今天要来学的是Spring framework主要处理业务逻辑层,它是spring这个体系结构的一部分.

    • spring的优点

      • 1.方便解耦,简化开发  ioc(重点)

        • 解耦:软件开发经常提到:高内聚 低耦合:
          • 所谓的高内聚:就是讲相似的或者相同的业务放在一起
          • 低耦合:他们之间的关联尽可能的低,这样在修改的时候对它的影响越小
        • 这里我们要着重说一下这个ioc了.Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
        • 我们下面举个例子说明一下:由于排版问题,我们种类用代码块引入
          一个类B{}
          
          一个类A{
              A里面想用B的对象,
              以前我们这么做B b = new B();但是这样的AB的依赖很严重.因为B如果修改了,和B先关的都要改
          }
          
          我们说过spring是一个工厂模式:一般不是单独的,而是和接口联系起来.
          这时候我们智造一个接口:
          接口C{}
          B 实现了 C{}
          此时A中的代码{
              C c = new B();
              这里有一个好处,就是B发生该变,那我就不创建B,我创建一个类D来实现C,将B改变的内容写在D里面.
              D实现C{}
              这是我们不再创建B,而是C c = new D{}即可.这样我们让A和B的父类/接口产生关系,而不是和实体类直接产生关系.这是b发生修改,只要单独床架另外一个实现类,里面有这些修改内容即可.
          }
          但是我们发现依旧需要new D()出来,也有关联,这个时候我们可以使用工厂
          是这么做的:工厂有一个factoryC{ // 创建C对象的工厂
                                  create(){}
                              }
          A{
              C c = factoryC.create();
          }
          A里面就用C c = factoryC.create();来得到C对象.我们通过参数或者其他东西来控制工厂创建的的到底是B还D,这样,A就和BD的关系就很小了
          这里spring本身就是工厂,会帮助我们创建对象和对对象关系的维护,所以我们互很少看见new这个关键字了.具体怎么实现的我们后面说.
      • 2.支持aop的开发,面向切面的编程--对面向对象开发的补充...
      • 3.支持对优秀框架的集成  --不要重复造一个轮子(例如Mybatis/strut2都可以和spring整合到一起来开发)
      • 4.支持对javaee  api的简化
      • 5.支持对Junit的整合  单元测试
    • spring的体系结构

      • 我们官网来看一下:    spring.io.   点开产品,我们关注一下spring framework这个产品.介绍中有段dependency injection 依赖注入,给依赖动态实现赋值  transaction management 事务管理.我们知道事务管理我们要放在业务逻辑层,所以以后的事务管理我们在这里.
      • 我们看下面一张图:
      •    
      • 这个就是spring framework的体系.我们来解读一下
      • 第一组:core container 核心容器 创建和管理对象  
        • beans 创建和管理对象通过这个模块
        • core    核心,核心容器里有很多模块,这么多模块都需要依赖相同的东西 就是这个核心
        • context  上下文,这里指代配置文件 位于怎样的环境由配置文件决定的,配置文件的设置,获取都是通过context来实现的
        • spel     spring表达式
        • 这里我们再强调一下,spring的核心 就是  ioc  控制反转  aop  面向切面
      • 第二组: AOP spring aop框架  是spring自己的
      • 第三组: Aspects  aspectj aop框架 这里面的功能更强一点,spring就给集成进来了
      • 第四组:data access/integration 数据访问相关,和数据持久层打交道
        • JDBC 对JDBC的支持
        • ORM  对象关系映射   对ORM框架的支持  mybatis 是一个orm框架  如果想spring将mybatis整合到一起,需要引入orm这个jar包
        • transactions 事务的支持 一般就tx
      • 第五组:web 对web层的支持,也就是对表示层的支持   
        • servlet 对servlet的支持
        • web     SpringMVC的支持
      • 第六组:Test    对Junit的支持
  • 我们这里简单介绍一下spring的下载和解压后的文件信息

    • 下载我们在github这个托管平台 
    • 这个是我们下载好的解压包,我们解压后出现下面这些内容

    • 我们主要说一下这里的三个文件夹

    • 第一个Docs  文档

    • 第二个 lib放的所有的spring framework 所用的jar包

    • 第三个文件夹 schema 对配置文件的描述文件或约束文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值