wild84 2017-12-07 03:24 采纳率: 80%
浏览 4904
已采纳

spring的controller和service是否线程安全?

先上代码

 public String deleteNews(Integer id){
        String ret;
        logger.debug("mydebug news id:"+id);
        News news=newsService.selectNewsById(id);
        Types types=news.getTypesEnti();
        if (types.getOnechildOnly()==1){
            ret=ReturnFormat.retParam(2,null);
            return ret;
        }else{
            int no=newsService.deleteNewsById(id);
            if (no>0){
                ret= ReturnFormat.retParam(0,null);
            }else{
                ret=ReturnFormat.retParam(1,null);
            }
            return ret;
        }
    }

我先传一个types.getOnechildOnly()==1的news ID,这时是正常的
然后我再传一个types.getOnechildOnly()!=1的ID,这个时候也是正常的,
但是当我再重复1和2步骤时,newsService.selectNewsById(id);有时候会出现
空值情况.我打印了下,好像他删除的还是前一个已经删除的id,这种情况怎么处理?

  • 写回答

2条回答 默认 最新

  • 一页书_ 2017-12-07 03:26
    关注

    线程安不安全取决于你怎么用,反正记住一点,共享资源不要定义全局的变量,只定义常量和注入的bean,这样基本不会有线程安全问题的出现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作