我正在开发一个Java Spring MVC项目,我犹豫在Java Spring Bean中使用实例变量。我想问一些有关此主题的问题。
我在Java Spring Bean中使用了一个实例变量,其类型为String。
private String abc = "hell";
Run Code Online (Sandbox Code Playgroud)
众所周知,Java Spring的默认范围是Singleton,它们是在项目启动时构造的。它是单个实例,我的实例变量必须是线程安全的。
我在Bean的方法中使用了此变量“ abc”,当多个线程访问它们时,是否会破坏每个线程的数据一致性?
例如,线程1到达bean并采用abc变量将其更改为“ hello”。那时,线程1引用了abc变量点“ hell”还是“ hello”?我对这个话题感到困惑。
我将String abc变量设置为ThreadLocal
对象,以提供每个线程拥有其自己的abc变量ThreadLocal
。
因为每个线程都拥有自己的变量,并且在完成工作后返回线程池,该线程池由容器管理。但是,返回池时,ThreadLocal对象不会被破坏,并且会导致内存泄漏。
而且,String对象是不可变的,因此在理论上它会引起多线程问题吗?
每个线程自己拥有自己的String变量吗?例如,线程1触发,然后启动方法调用,并创建单独的String变量“ abc”,而线程2触发,然后创建新的String变量“ abc”,它们是否会相互破坏“ abc”变量?
我真的很想知道这种用法的概念,并渴望学习答案。
我有几个treenodes的树视图.当我右键单击treenode时,我会得到一个具有不同选项的上下文菜单,例如"删除项目".
有没有一种简单的方法可以在contextmenu-item的eventHandler中获取右键单击的treenode对象?
我有一个HTML文本框
<script>
$(function () {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true
});
});
</script>
<input type="text" size="10" name="datepicker" id="datepicker" />
Run Code Online (Sandbox Code Playgroud)
现在我需要将textbox的值设置为"abcd";
我试过datepicker.Text = "abcd";
错误是"the name datepicker does not exist in current context"...
我尝试找到控件并分配值,但仍然无法做到.
还有其他办法吗?谢谢