这篇文章中我们将会介绍Spring的框架以及本体内容 , 包括核心容器 , 注解开发 , AOP以及事务等内容
那么简单说明一下Spring的必要性:
- Spring技术是JAVAEE开发的必备技能 , 企业开发技术选型率高达90%!
- Spring可以帮助简化开发 , 降低企业级开发的复杂度
- Spring可以进行框架整合 , 高效整合其他技术 , 提高企业级应用开发与运行效率
Spring的核心内容:
- IoC技术
- DI技术
- AOP
- 事务处理
Spring可进行的框架整合:
- MaBatis
- MyBatis-plus
- Struts
- Struts2
- Hibernate
在接下来的文章中 , 我们会学习Spring的框架思想 , 学习Spring的基本操作 , 结合案例熟练掌握
温馨提醒:在学习本篇文章前请先学习JavaWeb相关内容 (HTTP , Tomcat , Servlet , Request , Response , MVC , Cookie , Session , Ajax , Vue等内容)初识Spring
官网:Spring | Home
Spring发展至今已经形成了一套开发的生态圈 , Spring提供了相当多的项目 , 每个项目用于完成特定功能
文章插图
我们常用的主流技术包括有:
- Spring Framework:Spring框架
- Spring Boot:Spring简化代码开发
- Spring Cloud:Spring分布设计
在系统学习Spring之前 , 我们需要先来了解FrameWork系统结构
- Spring FrameWork是Spring生态圈中最基本的项目 , 是其他项目的根基
文章插图
我们现在所使用的Spring FrameWork是4.0版本 , 已经趋于稳定
下面我们对架构图进行解释:
- Core Container:核心容器
- AOP:面向切面编程
- Aspects:AOP思想实现
- Data Access:数据访问
- Data Intergration:数据集成
- Web:Web开发
- Test:单元测试与集成测试
我们可以在官方中获得如此评价:
- 强大的基于 JavaBeans 的采用控制反转(Inversion of Control , IoC)原则的配置管理 , 使得应用程序的组建更加快捷简易 。
- 数据库事务的一般化抽象层 , 允许插件式事务管理器 , 简化事务的划分使之与底层无关 。
- 一个可用于从 Applet 到 Java EE 等不同运行环境的核心 Bean 工厂 。
首先我们思索一下我们之前的业务层与数据层:
// 数据层接口 public interface BookDao { public void save(); }
// 数据层实现 public class BookDaoImpl implements BookDao { public void save() { System.out.println("book dao save ..."); } }
// 业务层接口 public interface BookService { public void save(); }
// 业务层实现 public class BookServiceImpl implements BookService { private BookDao bookDao; public void save() { bookDao.save(); } }
如果我们修改BookDaoImpl内容 , 那么相对应的业务层实现中的bookDao的new实现也要进行修改 , 甚至下方方法的对象也要进行修改
Spring使用前问题
代码书写现状:
- 耦合度偏高
解放方案:
- 使用对象时 , 在程序中不要主动使用new产生对象 , 转换为由外部提供对象
IoC(Inversion of Control)控制反转思想: