初识SpringBoot

108 阅读2分钟

这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

Spring的前世今生

Spring最早的作者是Rod Johnson,他在《Expert One-On-One J2EE Development Without EJB》一书中说了自己的想法:如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J2EE平台上的不同组件合作。

这说明当时的这个应用程序不够简单和便于维护,那当时大家是怎么玩的呢?

当时的这个java应用是跑在这个EJB的容器上,然后就很依赖这个企业级的容器,比如你这个一个数据库,也需要部署到这个容器上,然后配置什么的都放在容器上,这容器内部的多个应用啊,都需要通过这个JNDI的方式去访问容器上的应用,再找到容器上的连接池,应用本身内部是无法修改这个连接池的。

这就使得我们这个J2EE开发严重依赖于这个容器,然后这个容器也卖的比较贵,成本也比较高,开发的时候还得关心这个实体Bean啊、会话Bean啊,开发是极不友好,那怎么办呢?有个大神就想:我们能不能简化开发?

于是,就有了Spring,哈哈哈,java开发的春天。

Spring的框架设计

image.png

数据访问

我们这里可以看到数据访问,对于数据访问呢,Spring也是支持很多主流的框架,比如我们常用的关系型数据库,你就不得不和JDBC打交道,包括这个ORM可选的Mybatis或者其它的,也是对JDBC进行封装。

那操作jdbc呢,Spring提供了JdbcTemplate,帮助我们更好的操作。 jMS呢,就是一个异步调用,这个在Spring里也有很好的实现。

Web操作

web操作呢,包括两部分:webServlet底层默认是用这个Servlet引擎进行支撑的,然后还有Spring5引入的这个webReactive使用这个netty-server支持,当然也可以用SpringmVc进行支持,就是用Serverlet引擎。

Test操作

Spring也整合了Test,使我们更方便进行Web测试或者其它单元测试。

SpringCore

java是基于对象的,Spring也不例外,如何管理这些对象,Spring给出了它的解决方案:就是Context,Aop这些方式。

总结

  1. Spring给我们提供了多种选择
  2. 保持了很好的向后兼容性
  3. 代码整洁、注释清楚,文档完善

SpringBoot是我们在实际工作中更多使用的,开箱即用,约定大于配置。