spring-mvc threadsafe中是否有自动对象?

spring-mvc threadsafe中是否有自动对象?,第1张

概述问题1)根据我的理解,spring会创建单例对象,所以当我有一个像下面的控制器一样的自动装配服务时,会影响线程的安全性.问题2)如果我在类级别声明一个int类型变量并在控制器或服务中使用它,它会影响线程安全吗?@Controller public class LoginController { @Autowired public DaoSe

问题1)根据我的理解,spring会创建单例对象,所以当我有一个像下面的控制器一样的自动装配服务时,会影响线程的安全性.

问题2)如果我在类级别声明一个int类型变量并在控制器或服务中使用它,它会影响线程安全吗?

@Controllerpublic class LoginController {    @autowired    public DaoService daoservice;    @RequestMapPing("/")    public String getBookInfo() {        Book book = daoservice.getBookbyID(1L);        System.out.println(book.getTitle());        return "welcome";    }}@Servicepublic class DaoService {    @autowired    public BookRepository BookRepo;    public Book getBookbyID(Long ID) {        Book book = BookRepo.findOne(ID);        return book;    }}
最佳答案问题1:Spring Beans是否安全?
答:没有.
Spring不会为你的bean提供线程安全性. Spring提供不同类型的bean范围,如(Prototype,Singleton等).如果是Prototype,那么每次调用一个新bean时都会创建一个单独的bean创建一次并在应用程序上下文中共享的位置.

如果您正在考虑http请求,那么可能会有2个或更多请求.在每个请求范围中创建一个bean的新实例.所以你可以认为它们在http请求的上下文中是线程安全的,但是它本身并不是真正的线程安全.因为几个线程可以在同一个http请求上下文中共享bean.

问题2:类变量线程安全吗?
答:没有
引自here
所有私有成员变量都是共享的.它们可能是最终的,但这只意味着引用无法更改.任何可变状态都必须同步. 总结

以上是内存溢出为你收集整理的spring-mvc threadsafe中是否有自动对象?全部内容,希望文章能够帮你解决spring-mvc threadsafe中是否有自动对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存