SpringBoot源码解读二【认识框架】

认识

SpringBoot是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程。Spring Boot 去除了大量的 XML 配置文件(约定大于配置),简化了复杂的依赖管理(封装第三方组件,提供多种starter)。


回顾项目开发的经历

根据我的工作经历,把项目划分这些阶段。

第一个阶段(没有IOC,Servlet、Jsp)

特点
  1. 对象的生成通过new关键字
  2. 对象间的依赖关系是通过编码的方式通过调用构造函数或set方法来实现
问题
  1. 大量的new和set函数充斥在代码中
  2. 依赖关系稍作调整,可能会出现牵一发而动全身的问题

第二阶段(Spring)

特点
  1. bean的生成及之间的依赖关系通过xml管理
  2. 逐步引入MVC模式 干掉了strusts框架(感兴趣的可以做个简单了解)
问题
  1. 项目比较大时需要维护大量的xml
  2. 仍需要编写set函数或构造函数,无需手动调用

第三阶段(SpringBoot)

特点
  1. bean的生成及之间的依赖关系通过注解声明
  2. 引入starter,整合第三方框架,节省了开发的时间和成本
问题
  1. 随着互联网发展,业务功能越来越多,单纯的springboot框架无法适用于大规模的业务处理
  2. starter的封装带来了使用上的便捷,但也使开发人员第三方组件了解的更少

第四阶段(SpringCloud)

  1. 微服务架构,对业务服务进行横向拆分。各种框架如同雨后春笋应运而生
问题
  1. 解决同一个问题,有多套框架,且企业使用各有不同,对开发人员不友好,需要花费大量时间来掌握更多的专业技能

老生常谈

IOC(Inversion of Control 控制反转)

原来要通过代码进行对象的set或构造函数来控制内置对象,现在交给了第三方(spring)去控制对内置对象的创建和注入。具体实现是通过反射机制来实现(xml、注解 都是为了表明对象间关系)。

有人把IOC称为思想,也有人把IOC叫做容器。管理了生成的对象

DI(Dependency Injection 依赖注入)

内置对象通过注入的方式进行创建 。
随着注解方式的流行@Autowired 讲的更多的是注入

AOP

Aspect Oriented Programming 面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的技术.

好处:

  1. 解决了代码重复问题
  2. 横切逻辑代码与业务代码解耦

一个请求的一生

  1. 用户通过浏览器发送一个HttpRequest请求
  2. DispatchServlet监听端口,接收请求
  3. 获取请求路径,查找对应的对象和方法,并把请求内容进行转换
  4. 执行业务逻辑,返回结果
  5. 对结果进行加工,通过HttpResponse把响应内容返回给用户

总结

本文主要谈了一些个人的感想和认知,有不足的地方,望指正!

下一篇主要探SpringBoot启动过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值