大佬教程收集整理的这篇文章主要介绍了spring-mvc threadsafe中是否有自动对象?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题1)根据我的理解,spring会创建单例对象,所以当我有一个像下面的控制器一样的自动装配服务时,会影响线程的安全性.
问题2)如果我在类级别声明一个int类型变量并在控制器或服务中使用它,它会影响线程安全吗?
@Controller
public class LoginController {
@Autowired
public Daoservice daoservice;
@requestMapping("/")
public String getBookInfo() {
Book book = daoservice.getBookbyId(1L);
System.out.println(book.gettitle());
return "welcome";
}
}
@service
public class Daoservice {
@Autowired
public BookRepository BookRepo;
public Book getBookbyId(Long Id) {
Book book = BookRepo.findOne(Id);
return book;
}
}
如果您正在考虑http请求,那么可能会有2个或更多请求.在每个请求范围中创建一个bean的新实例.所以你可以认为它们在http请求的上下文中是线程安全的,但是它本身并不是真正的线程安全.因为几个线程可以在同一个http请求上下文中共享bean.
问题2:类变量线程安全吗?
答:没有
引自here
所有私有成员变量都是共享的.它们可能是最终的,但这只意味着引用无法更改.任何可变状态都必须同步.
以上是大佬教程为你收集整理的spring-mvc threadsafe中是否有自动对象?全部内容,希望文章能够帮你解决spring-mvc threadsafe中是否有自动对象?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。