-
spring简介
-
什么是spring
- 产生于2003年,轻量级的javase/ee一站式开源框架.
- 何为轻量级呢?这个是需要一个参照物的.就是ejb:企业级 javabean
- javabean:要求就是编写一个类,必须有私有属性,getset方法,还必须有无参构造--其实就是一个满足上面要求的java类,就是javabean
- 一站式:是在三个层都有自己的框架体现,各个层都涉及到了
- 开源框架:就不多说了 代码开源
- 产生于2003年,轻量级的javase/ee一站式开源框架.
-
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 对配置文件的描述文件或约束文件
-
经典三层框架初识(二)---Spring 1.简介
最新推荐文章于 2024-06-11 21:05:57 发布