一篇文章带你掌握主流基础框架——Spring

一篇文章带你掌握主流基础框架——Spring这篇文章中我们将会介绍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

文章插图
我们常用的主流技术包括有:
  • Spring Framework:Spring框架
  • Spring Boot:Spring简化代码开发
  • Spring Cloud:Spring分布设计
Spring FrameWork系统架构在系统学习Spring之前,我们需要先来了解FrameWork系统结构
  • Spring FrameWork是Spring生态圈中最基本的项目,是其他项目的根基

一篇文章带你掌握主流基础框架——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产生对象,转换为由外部提供对象
Spring思想以及实现IoC(Inversion of Control)控制反转思想:
  • 使用对象时,由主动new创建对象转换为由外部提供对象
  • 此过程中对象创建控制权由程序转移到外部,被称为控制反转
DI(Dependency Injection)依赖注入:
  • 在容器中建立Bean与Bean之间的依赖关系和整个过程,被称为依赖注入
Spring技术对Ioc思想进行了实现:
  • Spring提供了一个容器,被称为Ioc容器,用来充当IoC思想的外部
  • IoC容器负责对象的创建,初始化等一系列工作,被创建和管理的对象在IoC容器中被称为Bean
// 数据层实现public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}}// IoC容器/*包含daoservice两者可以建立连接*/// 业务层实现public class BookServiceImpl implements BookService {private BookDao bookDao;public void save() {bookDao.save();}}目的:充分解耦
  • IoC:使用IoC容器管理bean
  • DI:在IoC容器内将有依赖关系的bean进行关系绑定
最终效果:
  • 使用对象不仅可以直接从IoC容器中获?。箍梢越鸦竦玫腂ean之间绑定依赖关系
IoC入门首先我们需要明白IoC的使用规则:

推荐阅读