你的项目应当使用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 ...
随机推荐
- C#7.0之元组数据
static (string,string,string) LookupName(int a) { return ("","",""); } ...
- Excel去除单元格中的汉字
Alt+F11,插入,模块 Function RemoveChinese(rng As Range) s = Len(rng.Text) For i = 1 To s txt = StrConv(Mi ...
- Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x
近期做研究openpilot和crazyflie2.0,都须要在Linux进行代码的编写和烧录,所以研究了下Linux下如何使用Jlink,还有开源的支持多个仿真器的openocd,可是困难重重.总是 ...
- phpexcel对于中文路径和中文名称的问题(有疑问)
phpexcel对于中文的文件名无法读取(我本地环境都是utf-8的编码) 是不是win系统识别都是gbk ?(需要把utf-8的字符串改为gbk) $file = "C:\\Users\\ ...
- Spring Boot(三):logback打印日志
springboot对logback的支持是非常好的,不需要任何配置,只需要在resource下加logback.xml就可以实现功能直接贴代码: <?xml version="1.0 ...
- HDU 5303 Delicious Apples(思维题)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- Atitit.软件开发的几大规则,法则,与原则。。。attilax总结
Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计 ...
- (4)Smali系列学习之Smali语法详解内部类
在这一节,我们来介绍一下内部类.对于Java文件中的每一个内部类,都会产生一个单独的smali文件,比如ActivityThread$1.smali.这些文件的命名规范是如果是匿名内部类,则命名规则是 ...
- poj 3017 Cut the Sequence(单调队列优化 )
题目链接:http://poj.org/problem?id=3017 题意:给你一个长度为n的数列,要求把这个数列划分为任意块,每块的元素和小于m,使得所有块的最大值的和最小 分析:这题很快就能想到 ...
- 老司机的应用级监控——spring?actuator
http://mt.sohu.com/20160824/n465783118.shtml ************************************************ 1什么是sp ...