SDK具体适用场景有哪些?使用JDK能否开发Web应用?
仅用JDK是否可以完成Web应用开发
完全可以。JDK本身已经包含了Java运行所需的全部基础环境和核心类库,从Java 6版本开始还内置了com.sun.net.httpserver.HttpServer类,你可以基于这个类原生实现HTTP请求监听、参数解析、路由分发、业务处理、响应返回的全流程,不需要引入任何额外的SDK。
当然这种原生实现的缺点也很明显:所有Web开发的通用能力都需要你自己手写实现,开发效率极低,只适合用来做演示Demo或者功能极其简单的小型服务,生产环境几乎不会这么用。
什么情况下需要使用SDK
- 需要复用通用能力降低开发成本时:Web开发常用的参数校验、权限拦截、数据库操作、JSON序列化、限流降级等通用逻辑,已经有成熟的SDK封装好了实现,直接引入对应的SDK(比如Spring Web SDK、MyBatis SDK、Jackson SDK等),通过少量配置即可调用,不需要从零开发,能大幅提升开发效率。
- 需要对接第三方服务时:不管是对接云厂商的对象存储、短信、CDN服务,还是对接微信、支付宝这类开放平台的能力,官方都会提供封装好的SDK,你不需要自己研究底层的签名规则、请求拼接、异常重试逻辑,直接调用SDK暴露的方法即可完成对接,大幅降低对接成本和出错概率。
- 企业有统一技术管控要求时:很多企业会自研内部SDK,把统一的日志规范、链路埋点、安全校验、流量控制等公共能力封装在SDK中,要求所有业务项目接入使用,避免各项目重复实现,也方便后续统一升级维护。
- 需要使用JDK未内置的技术能力时:比如你要做响应式编程、分布式缓存操作、消息队列收发、大数据处理等场景,这些能力都没有内置在JDK的核心类库中,必须引入对应的SDK才能使用相关API。
实际项目选型时不用纠结要不要用SDK,核心看投入产出比即可:功能极简的小型服务只用JDK就足够,还能减少依赖体积;生产级的商业项目几乎都会引入多款SDK来提效和降低维护成本。
内容的提问来源于stack exchange,提问作者Manoj Kumar Padarthi
相关产品推荐
相关产品推荐

