SpringBoot源码解析(一): SpringBoot设计初衷

基于Servlet开发Java web

核心开发步骤

传统的java web的开发,都是基于javax-servlet api, 原始的api 倾入性太强需要继承HttpServet接口并实现对应的doGet/doPost方法 , 然后再web.xml中配置对应的servet url 拦截, 最后将项目打成war包,部署到servlet容器中。

  1. 在pom中引入各种jar包(i.e. javax-servlet api)
  2. 写一个类继承HttpServet接口并实现对应的doGet/doPost方法
  3. 在web.xml中配置各种编写的servlet
  4. 打成对应的war包部署到tomcat中启动.

知识拓展:
Tomcat 是基于 Servlet 规范实现的 Servlet 容器,顾名思义,可以存放多个 Servlet 组件,故 Tomcat 中可以部署多个 Java Web 应用,每个应用由多个 Servlet 组件组成。

痛点:

  1. 代码耦合 通过继承HttpServlet类,导致业务代码与java组件耦合
  2. 手动配置太多,维护性太差(web.xml)
  3. 部署困难,得单独部署一个tomcat进程,且不能对每一个java应用程序设置环境参数

基于SpringMVC 开发Java web

核心开发步骤

  1. 在pom中引入各种需要的jar包
  2. 在web.xml中配置DispatcherServlet,
  3. 写Controller 用@RequestMapping 在controller中处理不同的业务逻辑请求,降低了开发难度,减少了业务代码与java组件的耦合
  4. 打成对应的war包部署到tomcat中启动.

痛点

  1. 维护性差: 虽然 解决了servlet方法太过底层, 但是 SpringMVC 框架自身又引入了配置文件,如 Spring IOC 容器的配置文件applicationContext.xml,SpringMVC 的配置文件 dispatcher-servlet.xml,或者基于注解和 Java 类的应用配置等 。 可选的配置方式太多,导致项目中比较混乱
  2. 兼容性不好,各个第三方jar包可能不兼容
  3. 部署困难,和servlet开发一样都需要打成war然后部署servlet容器中运行

基于SpringBoot开发Java web

核心开发步骤

  1. 在pom中引入spring-boot-starter-web
  2. 编写对应的controller
  3. 直接打成jar包, 本地run main方法 或打成jar包用java -jar来运行 或部署到外部的tomact

优势

  1. 帮助开发者快速整合第三方框架, 原理是 将各个模块封装成各种自定义的starter包,自动配置 开箱即用
  2. 去除各种xml配置, 采用纯注解的方式.
  3. 不需要外部容器, 内嵌servlet 引擎, 原理是 使用java语言创建tomcat服务器, 然后将本地的class文件交给tomcat来加载 Tomcat cat =new Tomcat().
  4. 提供对应的监控Actuator .

思考

SpringBoot怎么实现的自动配置,做到开箱即用的呢? 我们在下一章节中从源码角度深入了解.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值