你的项目应当使用Spring Boot吗?(译文)
注:这是一篇译文,参考链接:https://www.e4developer.com/2018/09/24/should-you-use-spring-boot-in-your-project/
Spring Boot如今看似越来越受市场永无止境的流行了,自从2014发布以来,成功地在五年内超越了Java端服务器。但出现的一个问题是,当我们开始一个新项目时,我应不应当使用Spring Boot?
我将在在这篇文章中,帮你回答这个问题!
我们每个项目都是与众不同的,我们可以通过一些特性比较。通过这些特性,我会告诉你的项目应不应该使用Spring Boot。
你仍使用微服务体系架构工作吗?
Spring Boot的最大的卖点是它用于微服务架构。我同意—我已经使用Spring Boot在大型企业的生产中实现了微服务架构,并且它工作得很好。
但是我要指出的是,由于许多公司热衷于使用Spring Boot,没有看到Spring Cloud,而错失这个技术。我以前写过关于Spring Cloud作为微服务架构蓝图的文章—我真的认为这是一个很好的思考方式。如果您已经在考虑使用Spring Boot和实现微服务,请查看Spring Cloud及其提供的内容。
Spring Boot是微服务架构的好选择吗?当然是!
你的项目是否使用Kotlin?
Kotlin似乎非常快速的受到开发者的欢迎。自从2017年中期以来,似乎它成了非常有趣的语言,许多开发人员热衷于在服务器端使用它。
如果你正在研究Spring Boot的Kotlin爱好者,我有一些非常棒的消息想告诉你。 Spring Boot 2.0构建于Spring 5之上,为Kotlin带来了更好的支持。您可以在Spring官方网站上发布的文章中阅读它 - 介绍Spring Framework 5.0中引入Kotlin支持。
在使用Kotlin的时,Spring Boot是不是一个不错的选择?绝对是的!
你会使用Serverless架构吗?
另一个正在流行的趋势是Serverless架构。随着AWS lambda(亚马逊一种无服务器架构技术)和Azure Functions(微软一种无服务器架构),在运行您的系统时变得越来越容易……“无服务器”。由于这个词语的意思存在一些争论,我在这个词语使用了引号。你可以自我判断。
使用这个技术,你可以运行你的Spring Boot无服务器技术,但你会这么做吗?我认为这不是Spring Boot或无服务器架构的最佳选择。
你应该用什么技术更替它?如果你想知道Spring这个家伙在背后都做了什么,你应该看一下RIFF这个项目。不过它还处于早期阶段,但相当有趣。
偶然的机会,让我在博客上表达奇异的看法——是不是可以考虑另一种语言实现?Java用于无服务器技术,我认为使用JVM不是最好的方法。如果你不同意,你可以在评论里给我指点指点。
那么,Spring Boot是无服务器架构的好选择吗?我不会这么认为。
你是正在进入Spring的开发者吗?
Spring是一个非常强大的生态系统,从头开始学习,确实非常让人头疼的。如果你的团队以前从未使用过,你得考虑这是不是一个正确的选择?
我很喜欢在Spring Boot项目上和一些没有Spring开发经验的人员合作。我发现,Spring Boot有一个相当好的学习曲线。您可以很快地获得基础知识,并且当您学习这个框架时,不用担心配置。
事实上,我发现Spring Boot是最友好的服务器端框架之一。也许这就是它的疯狂流行的原因之一?
如果你想找一个好地方开始学习Spring Boot,我可以推荐Pluralsight作为它的课程(我写了一篇关于使用Pluralsight学习的文章,我是它的会员)和令人惊叹的Spring官方指南。
对于没有Spring开发经验的团队来说,Spring Boot是不是一种可行的选择?当然可行!
你期望的代码基础很简单吗?
如果你不需要Spring Boot提供的所有功能。可能你对依赖注入和奇妙的自动配置不感兴趣。你只想写一些简单的REST API。
这里你有一个选择——Spring Boot作为基本REST API来说仍然很棒,但是你可以给像Javalin和SpaveJava这样的microframeworks提供机会。
我已经详细阐述了这一点-研探简单的Java Microservices。
Spring Boot是否适合简单的REST API?当然可以,但也可以查看microframeworks相关资料!
总结
对于大多数的现代服务器端开发来说,Spring Boot是一个不错的选择。这真的很奇怪吗?Spring Boot是非常流行的一个原因!
不过,在你选择Spring Boot之前,要确保你不是“如果你有一把锤子,一切看起来像个钉子”(如果你有决心,有毅力(有能力之类的),那么你干什么事情都会很容易,任何事情看起来也会很简单,会迎刃而解),用正确的工具来做这项工作。尤其是当进入无服务器或试图写一些“简单”的事情的时候。
你的项目应当使用Spring Boot吗?(译文)的更多相关文章
- Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
- Spring Boot 项目学习 (三) Spring Boot + Redis 搭建
0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...
- 分享一个前后端分离的web项目(vue+spring boot)
Github地址:https://github.com/smallsnail-wh 前端项目名为wh-web 后端项目名为wh-server 项目展示地址为我的github pages(https:/ ...
- Maven项目改为spring boot项目的方法
目录树 新建Maven项目及步骤 修改方法 启动测试 新建Maven项目及步骤 我这里是从创建开始讲,使用的工具是Idea2017版本.如果是已经创建了Maven,想改为spring boot项目的请 ...
- 项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
前言 最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个"框架",其中虽然很多基础代码可以Copy,但也会浪费不少时间. 基于这个情况,我打算在GitHub上创建 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查
使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...
- 上手spring boot项目(二)之spring boot整合shiro安全框架
题记:在学习了springboot和thymeleaf之后,想完成一个项目练练手,于是使用springboot+mybatis和thymeleaf完成一个博客系统,在完成的过程中出现的一些问题,将这些 ...
- Spring Boot学习笔记:传统maven项目与采用spring boot项目区别
项目结构区别 传统的maven构建的项目结构如下: 用maven构建的采用springboot项目结构如下: 二者结构一致,区别如下:传统项目如果需要打成war包,需要在WEB-INF目录结构配置we ...
随机推荐
- 安装python3.6后使用pip报错
安装python3.6后,pip是一起安装好的,安装目录再C:\Programs\Python\Python36-32\Scripts中. 在python终端模式下使用pip出现错误如下: 错误原因: ...
- xml布局内容总结(三)--Android
关于xml中经经常使用到边框及边框效果,在此进行一下总结. 3.border(边框及边框效果) (1)直角边框线 <LinearLayout android:layout_wid ...
- 快速理解linux流编辑器sed命令
原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...
- 使用thrift进行跨语言调用(php c# java)
使用thrift进行跨语言调用(php c# java) 1:前言 实际上本文说的是跨进程的异构语言调用,举个简单的例子就是利用PHP写的代码去调C#或是java写的服务端.其实除了本文提供的办法 ...
- iOS开发之使用XMPPFramework实现即时通信
iOS开发之使用XMPPFramework实现即时通信 关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让 ...
- flex 伸缩盒子
flex 的学习地址: http://caibaojian.com/demo/flexbox/align-content.html
- mysql之内存表
一.引言 昨天下午老大让我查资料看一下mysql的内存表在主从备份中是否能被复制,我还没听说过内存表呢,于是上网查资料,记录一下,以便查阅.学习 二.进展 参考: http://www.cnblogs ...
- windows包管理
# windows包管理 ### 前言-----------------------------windows下好用的包管理程序类似于npm,安装curl程序方便.yum 的感觉 ### 包管理--- ...
- Netty4.x中文教程系列(六) 从头开始Bootstrap
Netty4.x中文教程系列(六) 从头开始Bootstrap 其实自从中文教程系列(五)一直不知道自己到底想些什么.加上忙着工作上出现了一些问题.本来想就这么放弃维护了.没想到有朋友和我说百度搜索推 ...
- windows7常用操作命令
1.打开命令行 按住Windows键加R键,打开运行窗口 2.打开笔记本 运行窗口中输入:notepad,点击确定或回车,打开记事本工具 主要作用:浏览网页时,看到一些有用的话,那么你是怎么把它记录下 ...