Spring框架之Spring简介(一)

156 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情

写在最前面:对于Spring框架,想从基础的开始写起。会分成几P的形式。请允许我之后再将连接添加上来 orz🙇‍♀️
链接会放到底部~😘

1、Spring简介

Rod Johnson ( Spring之父)

0. 前景知识

数据访问层/持久层(dao,Data Access Object):专门操作数据库的一个分层
业务层(service)

1. Spring是什么

Spring是分层的Java SE/EE应用full-stack(全栈,此全栈非彼全栈。只是表示spring的各层(web层、业务层、dao层)都有对应的解决方案)的轻量级开源框架,以lOC ( lnverse Of Control:反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核。

简的来说,Spring就是一个轻量级的开源框架,它运用于Java SE/EE中。

它提供了展现层SpringMVC(web层)持久层Spring JDBCTemplate(dao层) 以及 业务层事务管理(业务层) 等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。

2. Spring的优势

  1. 方便解耦,简化开发 通过Spring提供的lOC(控制反转)容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

方便解耦 ==> 把对象的创建权交由Spring完成。那么我们获取对象的时候,我们可以不用直接去new一个对象,而是直接找容器就可以了。

  1. AOP编程的支持 通过Spring的AOP功能,方便进行面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松实现。

  2. 声明式事务的支持 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。

一般是在我们的业务层去控制事务,但这个过程很繁琐(因为每个事务都要进行处理,这就导致了部分代码上的冗余)。而Spring里的声明式事务可以一次性配置一片方法,让他们都可以控制事务。

  1. 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不在是昂贵的操作,而是随手可做的事情。

  2. 方便集成各种优秀框架 Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。

Spring本身就是一个优秀的框架。而且他在每一层都有对应的解决方案(web层 => SpringMVC、Struts(第三方),dao层 => JDBCTemplet、Hibernate、Mybatis)

  1. 降低JavaEE API的使用难度 Spring对JavaEE APIl(如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低。

  2. Java源码是经典学习范例 Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源代码无意是Java技术的最佳实践的范例。

3. Spring的体系结构(了解)

image.png

4. Spring程序开发步骤

image.png

# Spring框架之Spring简介(二)