首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java框架建议

Java框架建议
EN

Software Recommendation用户
提问于 2018-10-15 20:04:33
回答 1查看 79关注 0票数 0

我使用网站作为界面开发服务器端的产品。底层逻辑通常很复杂,但是用户界面非常简单(大多数是mysql表上的简单CRUD操作。最复杂的查询通常需要几个联接,所有操作通常都是以无状态方式执行的,除了用户凭据之外)。

到目前为止,我的项目都是这样设计的:

  • PHP / HTML5 / JScript -一个访问数据/配置选项的简单网站。它无法直接访问该模型。它需要查询API (以最小化更改的影响)。Normaly我让用户使用JavaScript从API中获取和处理数据。
  • PHP / MySQL -一个project使用我的自定义DB访问类连接到mysql模型(为我的第一个项目制作了它,经过几次更新之后,它通常涵盖了大多数项目的查询)。Api将数据输入到我们自己的JavaScript表单控件和自定义GUI。我更喜欢通过规范数据库和使用简单触发器来确保模型在数据库中的一致性,避免在复杂数据库中进行一些危险的编辑,因此PHP模型所做的最复杂的事情就是复杂的搜索查询或事务。有些搜索需要动态创建对某些辅助联接的查询,但这不是正常情况。
  • 可执行文件(S)具有复杂的逻辑,通常在C++中,有时是在Python或Java中,如果时间紧迫,或者有很好的库可用,性能不是关键问题。它以服务的形式在后台运行,或者由PHP调用,这取决于项目的不需要。它们大多是Python、Java或C++。后台进程通常直接写入DB,而执行的文件通过stdout/err提供输出。

正如我前面所说,我们的网站通常都很简单,所以为了简单起见,我在代码点火器之上构建了基本API和基本网站;正如我所说的,应用程序的这一部分非常简单,并由我自己的一般类覆盖。

问题

我有两个主要问题:

  • 我是公司里唯一的PHP开发人员,所以我的老板对项目的可维护性感到很不满意。他喜欢Java,我知道Java,所以他更喜欢使用Tomcat。
  • 我对Java框架没有专业经验,我不喜欢为每个项目一遍又一遍地编写相同的代码,也不喜欢用样板复制/粘贴填充它们,所以如果我想要一些结构化的、漂亮的代码,其他人可以理解框架是可行的,因为我对Tomcat还不够经验,无法从头开始编写。

问题

我将面临的下一个项目将更容易使用状态感知服务器(如Tomcat )来实现。我还希望能够在应用程序范围上声明类(或者某些类似的东西,使它们在Tomcat启动时只实例化一次,如果框架不鼓励这种做法)。

哪个Java框架最适合我的问题和总体情况?我的计划是做一个种子项目,使我的项目同质化,然而,它可能更好地使用生成工具,你的经验是什么?我有时间在开始项目本身之前玩这个框架。

现在,编写Tomcat代码的同事目前正在使用以下多种方法:

  • Struts2
  • 用于DB抽象的Mybatis。好像太大了。看起来我只会用5%的能量来做我的项目。
  • 可视化均匀化瓷砖

我没有使用struts的经验,但看起来很容易,所以我的第一个想法是遵循他们的模式,使项目更加一致,这是让我可以问问题的人坐在我旁边的另一个好处,然而,看起来它产生了太多的锅炉板,而且在自动生成过程之后,修改某些东西会变得乏味,但可能只是缺乏经验。

正如我所说的,我们的端点非常简单,所以我更喜欢轻量的框架。我知道最好的框架是你最熟悉的框架,如果我的同事知道一个特定的框架,最好只是合作一下,但正如我说过的,我对java框架没有经验,所以我无论如何都要学一个,所以我想要基于经验的意见。

侧问题:正如我前面所说的,我的大多数项目都有REST Api端点。PHP在这方面看上去非常完美,因为类型不是强制的,但是,对于任意形状的数据结构,Java并不像PHP那么容易。我记得在我的Java时代,我使用Google的Gson库来处理JSON的编码/解码,现在它似乎仍然很流行。过去它能满足我的需要。对此有什么想法吗?

侧问题2:设想以下场景:我有一个Tika解析器从文档中提取纯文本。我的第一个想法是在应用程序范围上实例化Tika解析器,然后在需要时调用它的方法。在C语言中,我需要自己处理并发性,Tomcat是否正确地完成了它?tomcat的最佳实践是什么?我将在今晚阅读一篇紧张的tomcat文档,所以我可能很快就能回答自己了。

EN

回答 1

Software Recommendation用户

发布于 2018-11-08 13:53:57

您有相当多的需求,我从未听说过您提到的一些框架。(例如,我从未编写过一行PHP。)尽管如此,我还是推荐您使用Spring (Meta)框架。

Pivotal (Spring背后的企业)将春天描述如下:

Spring的一个关键元素是应用程序级别的基础设施支持: Spring专注于企业应用程序的“管道”,这样团队就可以专注于应用程序级的业务逻辑,而不必与特定的部署环境有不必要的联系。

此外,还有Spring Boot,它使您有能力启动您的项目。创建一个简单的REST服务器的教程可以找到这里

如果您正在寻找一个简单易学的框架,Spring并不适合您。但在我看来,它不仅仅是一个框架,因为它提供了一个完整的框架生态系统,可以根据您的需要进行组合。

例如,弹簧数据弹簧数据休息会自动(或多或少)创建REST和所需的CRUD操作。

不幸的是,我对前端开发和Spring没有经验,但是有春天支持您构建前端。

Spring也可以打包为WAR,并部署到Tomcat服务器上。

票数 2
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/52707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档