Java 是否可以在后端使用多个框架(Spring boot+;Django)?

Java 是否可以在后端使用多个框架(Spring boot+;Django)?,java,python,django,spring,backend,Java,Python,Django,Spring,Backend,tl;dr:Spring+Django后端是否可行? 当我刚进入这个行业,还在办公室里工作时,我对Django产生了兴趣,并使用这个框架创建了一个非常小的基础级应用程序。几周后,当我与我的团队会面时,他们说要使用Spring框架。在框架和主要项目上花了半年时间之后,我终于开始有时间开始工作了。但是,我不想失去这两项技能——我的队友(当我们还在办公室的时候)曾经告诉我,他们在一个项目中工作,该项目从python代码开始,后来使用Java添加了一些特性。我也找不到任何有帮助的谷歌搜索(主要是Spri

tl;dr:Spring+Django后端是否可行?

当我刚进入这个行业,还在办公室里工作时,我对Django产生了兴趣,并使用这个框架创建了一个非常小的基础级应用程序。几周后,当我与我的团队会面时,他们说要使用Spring框架。在框架和主要项目上花了半年时间之后,我终于开始有时间开始工作了。但是,我不想失去这两项技能——我的队友(当我们还在办公室的时候)曾经告诉我,他们在一个项目中工作,该项目从python代码开始,后来使用Java添加了一些特性。我也找不到任何有帮助的谷歌搜索(主要是Spring vs Django)

我该怎么做呢?要求太多了吗?值得吗?我将学习一些应用程序体系结构的新概念,这是像我这样的noob可能会错过的。请给我一些见解

是否有我可以查看的资源(文档)


另外,我现在不是这两个框架的铁杆粉丝,只是另一个测试waters的程序员。

你不能用python编写java

您可以使用C/C++扩展Python,这非常常见:

关于他们所说的用java添加功能的部分:

使用不同的语言和工具创建项目的不同部分是很常见的。微服务架构是这类用例的通用架构。您基本上用您想要的语言编写项目的不同部分,然后使用RESTAPI、gRPC等不同方法连接所有部分


想象一下,你正在创建一个像youtube这样的网站,允许其他人上传视频。有一种形式,用户上传他们的文件,您将其存储在存储器中,然后您必须对视频文件进行不同质量的编码。可以使用Python和Django编写表单处理程序,将文件存储在存储器中。然后,您可以使用java编写另一个服务,处理编码部分,这是一个繁重的过程。上传完成后,您使用内部REST API将文件或文件路径发送到java服务,并告诉服务开始编码视频并通知Django服务,然后Django服务将在提要上发布视频,该提要本身可以用另一种语言编写。

我想说,使用1框架并坚持使用它。例如,如果您想用python编写代码,则使用Django;如果您想用java编写代码,则使用spring。不过,学习这两种框架会带来很多价值,因为您可以比较它们的优点(例如,spring强制您编写干净的代码,django内置了更简单的数据库管理)

我非常喜欢Django的内置工具,您只需要了解python就可以了。Spring需要更多的数据库管理知识,例如hibernate。然而,我预测Django在某个时候会超过spring,因为云计算重视快速迭代而不是代码,重视快速启动时间(自动扩展应用程序),而不是大开销应用程序和长启动时间。Hoever,如果你喜欢java,我可以推荐JHipster用于java/SpringWebApp开发,以快速掌握RESTCRUDAPI的开发速度

要组合两个程序:在一个应用程序中编写主逻辑,并用第二语言编写一个小型服务,确保其独立于第一个应用程序(没有来回通信和复杂的逻辑,但简单独立的请求/响应,就好像主应用程序从未出现过一样)。在第二个应用程序中添加RESTAPI,并使用http请求进行通信

在组合语言方面有什么可能:

  • 将不同的应用程序相互连接:让它们通过API进行通信。例如,使用flask或django开发的python api可以向使用spring开发的java api发送请求,只要它们有通信方式(例如通过http或通过rabbitmq之类的队列)
  • 将webapp连接到两个不同的后端:通过使用共享身份验证系统:例如,使用KeyClope身份验证服务器来处理后端应用程序知道的令牌
什么是不可能的(也是不可取的):

  • 在同一个程序中结合java和python代码:有一些黑客方法可以让它工作,但这会带来麻烦,而且不可读

两种语言有两种不同的框架,你到底想问什么?是否可以用python和java混合编写后端?如果你是说把代码混合在一起,那就不需要了。我想问的是,在django中开发一些功能的后端,而在spring boot中开发一些功能的后端,是否有可能。但是,当前端请求一些数据时,所有功能都会同步工作以处理信息。“混合python和java是不可能的——这不是我要问的。”开发不同的功能通常意味着在同一个应用程序的容器中,所以不,这是不可能的。您可以用任何不同的语言开发后端的不同(独立)部分/模块。