一、Spring系统架构

 

 

(1)核心层

  * Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块

  (2)AOP层

  * AOP:面向切面编程,它依赖核心层容器,目的是==在不改变原有代码的前提下对其进行功能增强==
  * Aspects:AOP是思想,Aspects是对AOP思想的具体实现

  (3)数据层

  * Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
  * Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
  * Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容

  (4)Web层

  * 这一层的内容将在SpringMVC框架具体学习

  (5)Test层

  * Spring主要整合了Junit来完成单元测试和集成测试

介绍完 Spring 的体系结构后,从中我们可以得出对于 Spring 的学习主要包含四部分内容,分别是 :
Spring IOC/DI
Spring AOP
AOP 的具体应用 , 事务管理
IOC/DI 的具体应用 , 整合 Mybatis

 

2.3 Spring 核心概念
Spring 核心概念这部分内容中主要包含 IOC/DI IOC 容器 Bean , 那么问题就来了,这些都是什
么呢 ?
2.3.1 目前项目中的问题
要想解答这个问题,就需要先分析下目前咱们代码在编写过程中遇到的问题:

 

(1) 业务层需要调用数据层的方法,就需要在业务层 new 数据层的对象
(2) 如果数据层的实现类发生变化,那么业务层的代码也需要跟着改变,发生变更后,都需要进行编译打包和重部署
(3) 所以,现在代码在编写的过程中存在的问题是: 耦合度偏高
针对这个问题,该如何解决呢
 我们就想,如果能把框中的内容给去掉,不就可以降低依赖了么,但是又会引入新的问题,去掉以后程序能运行么 ?
答案肯定是不行,因为 bookDao 没有赋值为 Null ,强行运行就会出空指针异常。
所以现在的问题就是,业务层不想 new 对象,运行的时候又需要这个对象,该咋办呢 ?
针对这个问题, Spring 就提出了一个解决方案 :
使用对象时,在程序中不要主动使用 new 产生对象,转换为由 外部 提供对象
这种实现思就是 Spring 的一个核心概念
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值