【Spring】spring框架简介
一、框架
1.框架的基本特点:
- 框架(Framework),是基于基础技术之上,从众多业务中抽取出的通用解决方案;
- 框架是一个半成品,使用框架规定的语法开发可以提高开发效率,可以用简单的代码就能完成复杂的基础业务;
- 框架内部使用大量的设计模式、算法、底层代码操作技术,如反射、内省、xml解析、注解解析等;框架一般都具备扩展性;
- 有了框架,我们可以将精力尽可能的投入在纯业务开发上而不用去费心技术实现以及一些辅助业务。
2.Java中常用的框架:
不同语言,不同领域都有属于自己的框架,使用框架开发是作为程序员的最基础的底线。Java语言中的框架,可以分为基础框架和服务框架:
- 基础框架:完成基本业务操作的框架,如MyBatis、Spring、SpringMVC、Struts2、Hibernate等
- 服务框架:特定领域的框架,一般还可以对外提供服务框架,如MQ、ES、Nacos等
二、spring介绍
1.Spring框架概述
spring是一个开源的轻量级Java开发应用框架,可以简化企业级应用开发。Spring解决了开发者在JavaEE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。是当前企业中Java开发几乎不能缺少的框架之一。Spring的生态及其完善,不管是Spring哪个领域的解决方案都是依附于在Spring Framework基础框架的。
2.Spring框架的历史
- Jsp 默默扛下所有;
- MVC+三层架构分工明确,但开发成本及其高;
- EJB重量级框架出现,走出一个困境,有进入另一个困境;
- Spring春天来到,随之,SSH风生水起、称霸武林;
- Spring 稳住江湖大哥位置,SSM开始上位;
- Spring本着“拿来主义”的思维快速发展,生态不断健全;
- SpringBoot又一里程碑崛起,把“约定大于配置“思想玩的炉火纯青;
- SpringCloud打包了微服务众多解决方案,应对互联网项目更加easy!
3.Spring Framework技术栈图示
- Data Access:数据访问
- Data Integration:数据集成
- Web:web开发
- AOP:面向切面编程Aspects:AOP思想实现
- Core Container:核心容器
- Test:单元测试与集成测试
三、spring四大内容
1.loC基础容器
lnversion of Control,控制反转,强调的是原来在程序中创建Bean的权利反转给第三方。
Spring两大核心之一,其他组件功能的基础,主要涉及Bean产生和关系等。
(1)DI
Dependency Injection,依赖注入,强调的Bean之间关系,这种关系第三方负责去设置。
2.AOP面向切面编程
Aspect Oriented Programming,面向切面编程,功能的横向抽取,主要的实现方式就是Proxy。
Spring两大核心之一,用横向抽取思想对Bean进行增强,主要涉及切面配置、声明式事务控制等。
3.Spring整合web环境
Spring整合web的方式、原理和整合web层各个MVC框架的思想。
4.web层解决方案-SpringMVC
基于MVC思想打造的框架,摆脱Servlet,用更简单的方式开发web层代码。
四、传统Javaweb开发困惑及解决方案
问题一:层与层之间紧密耦合在了一起,接口与具体实现紧密耦合在了一起
解决思路:程序代码中不要手动new对象,第三方根据要求为程序提供需要的Bean对象
问题二:通用的事务功能耦合在业务代码中,通用的日志功能耦合在业务代码中
解决思路:程序代码中不要手动new对象,第三方根据要求为程序提供需要的Bean对象的代理对象