你的项目应当使用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 ...
随机推荐
- DEV 第三方控件报表分类汇总
最近这段时间难得空闲,于是打算做个报表功能,主要实现数据的分类汇总,以便不时之需.首先看看效果: 主要是根据工程类型这个字段进行分类,每个分类下对应的项目金额进行求和,当然,你也可以根据实际需求,进行 ...
- LNMP架构三
Nginx代理(正向代理) 正向代理:让局域网内的用户 访问外网,外网不能访问局域网, 场景:如果要从国内访问美国的服务器会很慢,这时候就可以找个香港服务器做代理,香港访问美国是很快的. 代理服务器作 ...
- navigate
一.router.navigate的使用 navigate是Router类的一个方法,主要用来跳转路由. 函数定义: ? 1 navigate(commands: any[], extras?: Na ...
- Sublime Text 2 入门与总结
Sublime Text 2 入门与总结 首语 : 考完试,但又没什么兴趣做课程设计,蛋疼的弄点软件入门的介绍,希望给各位还在吃香蕉的程序猿带来一点启示... 代码编辑器,就像武侠中的武 ...
- 自己定义滑动删除item的ListView。
首先继承创建继承ListView和实现OnTouchListener,OnGestureListener的类. 会使用到AbsList中的pointToPosition(int x, int y)方法 ...
- php 36进制与10进制转换
php 36进制与10进制转换 /** * @desc im:十进制数转换成三十六机制数 * @param (int)$num 十进制数 * return 返回:三十六进制数 */ function ...
- 蓝桥杯第五届B组 李白打酒
外面的小雨下着,风吹着,在实验室敲着代码 时隔一年之后再次做这道题,依然神一样的回溯出来: 标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他 ...
- Cannot change version of project facet Dynamic Web Module to 3.0 requires Java 1.6 or newer 解决方案
Eclipse Maven 开发一个 jee 项目时,编译时遇到以下错误:Description Resource Path Location TypeDynamic Web Module 3.0 r ...
- PHP学习笔记(1)数组函数
1.数组的键值操作函数: $arr = array("小明" => 98, "小红" => 76, "小黑" => 66, ...
- MapReduce编程实例4
MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ...