Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Restful API,良好实践_Java_Spring_Rest - Fatal编程技术网

Java Restful API,良好实践

Java Restful API,良好实践,java,spring,rest,Java,Spring,Rest,这个问题与其说是技术问题,不如说是设计问题。 我正在使用java和springrestservices开发一个后端应用程序。 这是一个小应用程序,所以在一开始我只是为所有端点(5或6个端点)创建了一个控制器。例如,我有一个端点请求令牌,即/token,另一个端点基于先前接收到的令牌,即/readresource,发出请求 所以现在我想知道是否应该将控制器拆分为两个或多个控制器,每个控制器都有彼此相关的端点 当然,就代码的易读性而言,这是很有用的,但从技术角度来看,如果SpringBean的默认作

这个问题与其说是技术问题,不如说是设计问题。 我正在使用
java
springrestservices
开发一个后端应用程序。 这是一个小应用程序,所以在一开始我只是为所有端点(5或6个端点)创建了一个控制器。例如,我有一个端点请求令牌,即
/token
,另一个端点基于先前接收到的令牌,即
/readresource
,发出请求

所以现在我想知道是否应该将控制器拆分为两个或多个控制器,每个控制器都有彼此相关的端点

当然,就代码的易读性而言,这是很有用的,但从技术角度来看,如果SpringBean的默认作用域是
SINGLETON
,如果我只有一个控制器,那么整个应用程序只有一个实例,那么让我们设想一下,我们有两个请求同时到达服务器,即使每个请求都运行一个完全独立的线程,并且它们请求不同的端点,最后它们访问同一个实例,所以一个请求应该等待另一个完成,我们不能在同一个实例上同时执行两个不同的线程,对吗

所以。。。就性能或良好实践而言,是否最好避免使用具有多个端点的大型控制器,而使用多个小型控制器

你觉得怎么样

谢谢大家!

我们不能在同一个实例上同时执行两个不同的线程,对吗

错。只有当被调用的方法具有
synchronized
access修饰符时,才会出现这种情况。否则,并发调用可能会在不同线程中的同一实例上发生

拥有多个控制器对应用程序的性能没有明显影响。这意味着一个额外的bean被加载到内存中,这相当于额外占用了几KB的RAM

拥有易于阅读和理解的代码远远超过了这一成本。记住,你不应该为自己编写代码。你应该为下一个人写,或者像一个比我聪明得多的人曾经说过的

写下你的代码,就好像下一个读代码的人是一个愤怒的精神病患者,他知道你住在哪里


这不是性能问题。感谢您的澄清!