我学到的关于Java EE开发的第一件事就是我不应该在Java EE容器中生成我自己的线程.但是当我开始思考它时,我不知道原因.
你能清楚地解释为什么气馁吗?
我相信大多数企业应用程序都需要某种异步工作,如邮件守护进程,空闲会话,清理工作等.
因此,如果确实不应该生成线程,那么在需要时执行它的正确方法是什么?
我使用超过6个月的春天.我无法理解与下面场景相关的这种潜在机制.
我有一个春季网络应用程序.现在我在控制器中自动启动了模型.基于url匹配,它调用各自的方法.我所有的方法都是单身.
现在当两个用户同时打开app时,spring可以并行运行它们并为它们提供结果.我不明白它怎么能这样做.我的意思是,因为bean是单例,它必须等待直到不使用bean或覆盖bean中的数据.但春天工作正常.有人可以用一些类比来解释这种行为.
为了解释我的问题,下面是一段代码:
我的默认控制器很简单:
@Autowired
private AppModel aModel;
public AppModel getModel(){
return aModel;
}
public void setModel(AppModel aModel){
this.aModel = aModel;
}
@RequestMapping(method = RequestMethod.GET)
public ModelAndView defaultGetter(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView(getViewName());
mav.addObject("model", aModel);
Runtime.getRuntime().gc();
return mav;
}
Run Code Online (Sandbox Code Playgroud)
也可以有人告诉我,当两个客户打开应用程序时,我会使用@autowired生成两个单独的模型.如果所有客户端只存在一个模型bean,那么请说客户端1的请求进来,我需要30秒才能获得结果.现在,如果第二个客户端在第3秒发送请求,那么第一个客户端请求是否会被覆盖?
我想我很困惑.有人可以澄清这种魔法是如何发生的吗?
谢谢
能否解释一下在各种servlet实现中实现的两种方法:
以上两种策略中哪一种更好地扩展?为什么?
这是我的第一个问题所以请耐心等待我:)
我正在尝试创建一个服务:
我在虚拟机和Tomcat7上使用spring运行它.我会事先道歉并提到我对Tomcat很新
无论如何,我期待很多并发GET请求到这个服务(成千上万的同时请求)我基本上想要实现的是尽可能地使这个服务可扩展(如果这是不可能的那么至少一个可以处理数十万个并发请求的服务)
我一直在阅读A LOT关于服务中的异步请求处理,特别是在Tomcat中,但我有些事情对我来说仍然不清楚:
我为同样的问题提出了很多问题而道歉,但是我和我的同事们争论这些事情一个多星期没有任何具体的答案.
我还有一个更普遍的问题:您认为使我描述的服务具有可扩展性的最佳方法是什么?(暂时不要添加更多机器),您是否可以针对目标解决方案发布任何示例或参考?
我发布了更多我一直在关注的链接链接,但我目前的声誉不允许.我将非常感谢任何可以理解的参考文献或具体的例子,我很乐意澄清任何相关问题
干杯!
我可以HttpServletRequest在我的RestController类似下面自动装配吗,servletRequest即使它在高度并发的环境中执行,它也会返回不同的结果。我有一个限制,我不能作为方法参数,因为我正在实现一个自动生成的接口,不会HttpServletRequest作为方法参数。
@RestController
public class MyController implements MyInterface {
@Autowired
private HttpServletRequest servletRequest;
@Override
@RequestMapping(value = "/test", produces = {"application/json"}, consumes = {"application/json"}, method = RequestMethod.POST)
public ResponseEntity<MyResponse> test(@RequestBody final MyRequest payload){
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我已经浏览了这些 SO 问题和其他一些关于此的文章。但只是想确保当我们HttpServletRequest在控制器中自动装配时,它的Scope是Request?
Spring 3 MVC 从控制器访问 HttpRequest
如何在 Spring bean 中获取 HttpServletRequest?
注意:我确实尝试过这个,它似乎工作正常。但只是想确认即使在高度并发的环境中它也是一个万无一失的解决方案。此外,如果这是正确的方法,如果有人能解释它的工作原理,我将不胜感激。
java ×3
spring-mvc ×3
http ×1
httprequest ×1
java-ee ×1
scope ×1
servlets ×1
spring ×1
tomcat ×1