关于springmvc中的controller有无并发阻塞问题

关于controller的一点疑问

一般情况下,spring中的controller是单例模式的,也就是说所有的访问都会调用同一个controller的方法,自然而然的就会想到并发的问题,当某一个请求调用controller方法尚未退出时,是否会造成后续请求的阻塞。
写个小demo测试一下

	@RequestMapping("/dotest01/{id}")
	@ResponseBody
	public String dotest01(@PathVariable("id") int id) {
		long start =System.currentTimeMillis();
		String str;
		if(id==1) {
			try {
				Thread.sleep(4000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			log.info("1号"+Thread.currentThread().getName());
			log.info(this.toString());
			str="1号结果!";
		}else {
			log.info("2号"+Thread.currentThread().getName());
			log.info(this.toString());
			str="2号结果";
		}
		long time =System.currentTimeMillis()-start;
		return str+time;
	}

进行测试先发送访问dotest01/1,后访问dotest01/2࿰

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Spring MVCController是一个Java类,用于处理HTTP请求并返回响应。它是MVC模式的控制器,负责接收用户请求并调用相应的服务层或业务逻辑层处理请求,最终将处理结果返回给用户。Controller通常使用注解来标识请求映射和请求参数,以及处理请求的方法。在Spring MVCController是一个非常重要的组件,它可以帮助我们实现灵活、可扩展的Web应用程序。 ### 回答2: Spring MVC是一个基于MVC(模型-视图-控制器)设计模式的Web应用程序框架, Controller是其的一部分,负责处理用户请求,调用业务逻辑,返回响应结果。 Controller是Spring MVC框架的一个组件,装配在Spring容器。它使用注解或XML配置的方式声明被哪些URL请求所映射。当一个请求匹配到它所映射的URL时,Spring MVC框架将自动调用Controller的方法。 Controller的方法通常使用注解@RequestMapping来与HTTP的请求方法和URL进行映射。@RequestMapping注解接受一个或多个URL请求路径。这个注解还可以用于指定请求方式(GET、POST等)、请求参数、请求头、响应类型等。 Controller的处理方法一般会调用业务逻辑的服务或DAO层,获取数据并对其进行处理,然后将处理结果返回给前端视图进行展示。返回结果可以是Java对象、JSON、XML等。 在Controller处理请求时,可以从请求获取参数,可以通过注解@RequestParam获取URL参数或表单参数,也可以通过@PathVariable获取URL的参数。还可以通过@ModelAttribute注解将参数绑定到指定的Bean。 总的来说,Spring MVCController负责处理请求、调用业务逻辑、返回响应结果,使得整个应用程序更加模块化、结构化、可维护性更高。同时通过注解以及自动化映射的特性,也可以大大地提高开发效率和代码质量。 ### 回答3: 在Spring MVC框架Controller是一个关键的组件,可以根据用户请求的不同,调用不同的方法和业务逻辑,返回相应的数据或视图给用户。Controller是连接用户请求和后端数据处理程序的桥梁,负责从请求读取数据,并将控制权交付给合适的处理程序。 Spring MVC Controller的工作方式是基于反射的,当用户发送请求到Controller时,Spring框架会根据请求的URL和请求参数实例化相应的处理类,并根据请求进行方法调用,处理完成后将结果返回给用户。Controller的主要职责是接收用户请求并处理请求,处理后返回相应的结果。 Spring MVC框架Controller可以通过多种方式来创建和管理,最常用的方式是编写一个基于注解的类,使用@Controller注解标记,使得Spring能够扫描到这个类并将其实例化为一个Controller。在Controller,使用@RequestMapping注解处理URL请求,可以将URL映射到对应的方法上,使得用户请求能够得到正确的处理。 Controller的方法可以接受多种参数,包括HttpServletRequest、HttpServletResponse、@RequestParam、@PathVariable和@RequestBody等。这些参数可以通过请求获取,用于向Controller提供必要的数据。同时,Controller方法也可以返回多种类型的数据,包括字符串、JSON、XML和View等,具体返回类型可以根据需要进行选择。 总之,Controller在Spring MVC框架起着非常重要的作用,其职责是接收用户请求,决定如何处理,将控制权交付给相应的处理程序,并将处理后的结果返回给用户。Controller的实现方式灵活多样,可以根据需要进行选择和组合,为用户提供高效、稳定、可靠的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值