在我的Spring MVC應用程序中,我們遇到了以下問題。我們是春季新手,並使用spring 3.x.請解釋下面的問題,如果不明確,請評論。Spring MVC應用程序不同步
當我們在觸發同時下面的服務和 庫豆,在以下代碼中所示的SampleBean對象越來越 與後觸發請求重寫併發請求。
換句話說,SampleBean在線程1中的值是變
與SampleBean的值覆蓋在線索2
骨架代碼帶註釋如下。
MyService.java
@Service public class MyService {
@Autowired private SampleBean sampleBean;
@Autowired private MyDao myDao;
public void updateDetailsToDB() throws Exception {
sampleBean.setXXX("xxx");
sampleBean.setYYY("yyy");
myDao.updateDetailsToDB(sampleBean);
}
}
MyDao.java
@Repository
public class MyDao {
@Autowired private SampleBean sampleBean;
@Autowired private MyDao myDao;
public void updateDetailsToDB(SampleBean sampleBean) throws Exception {
//Step 1: Print the data in sampleBean to console - *At this point the the sampleBean object prints the correct value specific to the thread.*
//Step 2: Insert data to table 1 into db using **jdbcTemplate**, the data will be taken from the bean
sampleBean getters.
//Step 3: Print the data in sampleBean to console.- *At this point the sampleBean value always print the values of the second request and it overwrites the value of the bean in first request as well which is not the case in Step 1.*
//Step 4: Insert data to table 2
}
}
更新: 如果我添加同步在服務類中的方法,然後每一件事按要求正常工作ests正在逐一處理。如何解決這個問題,而不需要添加同步。
你不應該保持在單身國家,你的設計是有缺陷的。你的'SampleBean'不應該在那裏。它應該只作爲方法參數存在,最好用'@ ModelAttribute'註釋。 –