注:这是一篇译文,参考链接: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来说仍然很棒,但是你可以给像JavalinSpaveJava这样的microframeworks提供机会。

我已经详细阐述了这一点-研探简单的Java Microservices

Spring Boot是否适合简单的REST API?当然可以,但也可以查看microframeworks相关资料!

总结

对于大多数的现代服务器端开发来说,Spring Boot是一个不错的选择。这真的很奇怪吗?Spring Boot是非常流行的一个原因!

不过,在你选择Spring Boot之前,要确保你不是“如果你有一把锤子,一切看起来像个钉子”(如果你有决心,有毅力(有能力之类的),那么你干什么事情都会很容易,任何事情看起来也会很简单,会迎刃而解),用正确的工具来做这项工作。尤其是当进入无服务器或试图写一些“简单”的事情的时候。

你的项目应当使用Spring Boot吗?(译文)的更多相关文章

  1. Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档

    0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...

  2. Spring Boot 项目学习 (三) Spring Boot + Redis 搭建

    0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...

  3. 分享一个前后端分离的web项目(vue+spring boot)

    Github地址:https://github.com/smallsnail-wh 前端项目名为wh-web 后端项目名为wh-server 项目展示地址为我的github pages(https:/ ...

  4. Maven项目改为spring boot项目的方法

    目录树 新建Maven项目及步骤 修改方法 启动测试 新建Maven项目及步骤 我这里是从创建开始讲,使用的工具是Idea2017版本.如果是已经创建了Maven,想改为spring boot项目的请 ...

  5. 项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》

    前言 最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个"框架",其中虽然很多基础代码可以Copy,但也会浪费不少时间. 基于这个情况,我打算在GitHub上创建 ...

  6. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。

    1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...

  7. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查

    使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...

  8. 上手spring boot项目(二)之spring boot整合shiro安全框架

    题记:在学习了springboot和thymeleaf之后,想完成一个项目练练手,于是使用springboot+mybatis和thymeleaf完成一个博客系统,在完成的过程中出现的一些问题,将这些 ...

  9. Spring Boot学习笔记:传统maven项目与采用spring boot项目区别

    项目结构区别 传统的maven构建的项目结构如下: 用maven构建的采用springboot项目结构如下: 二者结构一致,区别如下:传统项目如果需要打成war包,需要在WEB-INF目录结构配置we ...

随机推荐

  1. golang的各种数据格式的互相转换

    int to string import ( "strconv" ) int i = 10 str1 := strconv.Itoa(i) struct to json impor ...

  2. STL容器分析--list

    就是一双向链表,可高效地进行插入删除元素.

  3. 測试赛C - Eqs(哈希)

    C - Eqs Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  4. Atitit php序列化 php的serialize序列化和json序列化

    Atitit php序列化 php的serialize序列化和json序列化 PHP 对不同类型的数据用不同的字母进行标示,Yahoo 开发网站提供的Using Serialized PHP with ...

  5. atitit.LimeSurvey 安装 attilax 总结

    LimeSurvey 安装 (OSSEZ) CHS 技术参考, 2011-05-02 Author: YUCHENG HU, HA Websystems, Inc. 备忘 Copyright © HA ...

  6. Atitit.分区对索引的影响 分区索引和全局索引 attilax总结

    Atitit.分区对索引的影响 分区索引和全局索引 attilax总结 1. 分区的好处1 2. 分区键:2 3. 分区的建议:2 4. 分区索引和全局索引:2 5. 全局索引就是在全表上创建索引, ...

  7. Django项目国际化

    Django项目国际化 实验环境: py3.4.3 + django1.8.2 + Windows 项目设置 >django-admin startproject I18nDjango > ...

  8. C# Lpt 并口热敏小票打印机打印位图

    class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { L ...

  9. glibc/libc/blib区别

    转自:http://blog.csdn.net/yasi_xi/article/details/9899599 [glibc 和 libc] glibc 和 libc 都是 Linux 下的 C 函数 ...

  10. APACHE支持.htaccess

    需要开启.htacess功能需要以下三步: 1 2 3 4 5 6 7 8 9 1.打开httpd.conf 将Options FollowSymLinks  AllowOverride None  ...