B/S系统,MVC模式,一般需要注意线程安全的问题吗?

西夏一品堂 发布于 2015/05/17 15:41
阅读 618
收藏 0


@Component
public class TopicService 
{
	@Autowired
	private JdbcTemplate topicDao;

	public Topic getById(Integer id)
	{
		return topicDao.queryForObject("select * from topics where tid = " + id, new RowMapper<Topic>(){
			public Topic mapRow(ResultSet rs, int index) throws SQLException {
				if(rs != null)
				{
					Topic t = new Topic();
					t.setTid(id);
					t.setReadCount(rs.getLong("read_count"));
					t.setContent(rs.getString("content"));
					t.setTitle(rs.getString("title"));
					return t;
				}
				return null;
			}
		});
	}
	public int incReadCount(Integer id)
	{
		return topicDao.update("update topics set read_count = read_count + 1 where tid = " + id);
	}
}



@Controller
public class TopicController 
{
	@Autowired
	private TopicService topicService;
	
	/**
	 * 访问帖子页面,把帖子的阅读次数加一
	 * @return
	 */
	@RequestMapping("/show")
	public String index(HttpServletRequest req, Model model)
	{
		Integer id = Integer.valueOf(req.getParameter("id"));
		Topic topic = topicService.getById(id);
		topicService.incReadCount(id);
		model.addAttribute("topic", topic);
		return "/show";
	}
}



controller里面有一个成员变量TopicService,而TopicService里面也有一个JdbcTemplate的成员变量

但是,这里是没有加同步关键字的

controller又是是单实例多线程运行的

这个controller里面又有读,又有写,请问,是线程安全的吗?

这是一个典型的MVC模式

请问,大家在开发这种B/S的系统时,会注意同步吗?

加载中
0
whaon
whaon
这种不需要同步
西夏一品堂
西夏一品堂
这个controller里面又有读,又有写,又有成员变量。为什么不需要同步
0
南湖船老大
西夏一品堂
西夏一品堂
这个controller里面又有读,又有写,又有成员变量。为什么不需要同步.
0
南湖船老大
南湖船老大
Springmvc是方法级的,方法参数来自外部,不共享,所以没有线程安全问题。至于成员变量,这里面都是service,dao等不可变成员变量,自然不需要同步。
shijacky
shijacky
正解
返回顶部
顶部