我對控制器對象有點困惑。因爲我知道默認情況下控制器是單身人士。 singleton如何工作,如下面的代碼,如果線程1執行到第9行並且empId爲12,並且線程2從線程1接收控制並且empId爲23並且完成整個方法的執行然後再次線程1執行empId的值是12還是23.Spring Controller singleton對象
而且我也注意到只有一個對象是爲UserServiceDao類創建的,所以如何在每個線程都有自己的實例的情況下在彈簧mvc中管理線程。
1 public class ActionController {
2
3 @Autowired
4 UserServiceDao userServiceDao;
5
int count = 1;
6
7 @RequestMapping("/dashboard.htm")
8 public ModelAndView dashboard(HttpServletRequest request) {
9 String empId = request.getParameter("empId");
10 UserProfile userProfile = userServiceDao.loadEmpById(empId);
System.out.println(count);
count++;
11 }
12 }
Thread first output: 1;
Thread second output : 2;
謝謝。
詮釋計數會在線程之間共享。所以你的意思是說實例變量在Controller,Service或者Repository中的線程之間共享,你也可以共享圖像,因爲它是不可見的。 – pise
當示波器進入畫面時,何時使用它?請參閱[tutorials point]下面的網址(http://www.tutorialspoint.com/spring/spring_bean_scopes.htm) – pise