- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Web 项目,其中 BeanUtils
用于操作 bean。
在我的代码中,为了使 BeanUtils
将字符串记录正确地传输到 java.util.Date
字段中,一个 DateConverter
被注册到ConvertUtils
这样的类:
ConvertUtils.register(dateConverter, Date.class);
另外,在我的项目中,不同的Action需要不同的日期格式,所以,我在不同的Action中注册了不同的转换器,比如:
public void Action1(){
DateTimeConverter dtConverter = new DateConverter();
dtConverter.setPatterns(dateFormats1);
ConvertUtils.register(dtConverter, Date.class);
...
BeanUtils.populate(myBean1, hashMap1);
}
public void Action2(){
DateTimeConverter dtConverter = new DateConverter();
dtConverter.setPatterns(dateFormats2);
ConvertUtils.register(dtConverter, Date.class);
...
BeanUtils.populate(myBean2, hashMap2);
}
但后来,我注意到具有相同目标类(此处为Date
)的已注册 Converter 会相互替换。所以如果 ConvertUtils.register
操作不是线程本地的,并发引起的问题可能会在这里发生,即使我的网站还没有遇到过。
那么,在一个线程中注册的转换器会替换在另一个线程中注册的转换器吗?如果是这样,我的情况是否有解决办法?
最佳答案
Apache commons beanutils 使用 ContextClassLoaderLocal管理框架的实例。这个概念类似于 ThreadLocal
,只是它将一个实例绑定(bind)到线程的上下文类加载器。
因此,当执行 Action1
和 Action2
的线程共享相同的上下文类加载器时,在一个操作中对 ConverterUtils
的更改将影响其他。
为了安全起见,您可以在每个操作中使用自己的 BeanUtilsBean
实例,例如
public void Action1(){
BeanUtilsBean beanUtils = new BeanUtilsBean();
ConvertUtilsBean convertUtils = beanUtils.getConvertUtils();
DateTimeConverter dtConverter = new DateConverter();
dtConverter.setPatterns(dateFormats1);
convertUtils.register(dtConverter, Date.class);
...
beanUtils.populate(myBean1, hashMap1);
}
当然,最好在类的构造函数中配置一次 BeanUtilsBean
并直接使用它。
关于java - BeanUtils 中转换器的注册是线程本地的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31578862/
我有一个具有多个依赖项的项目,最终导致 取决于以下内容(我从 sbt-dependency-graph plugin 得到这些): commons-beanutils:commons-beanutil
我在使用列表时遇到了 Axis2 v1.6.1 和 v1.6.2 的以下问题: java.lang.StackOverflowError: org.apache.axis2.databinding.u
前言 呵呵 前端时间使用 BeanUtils.copyProperties 的时候碰到了一个这样的问题 我有两个实体, 有同样的属性, 一个有给定的属性的 getter, 另外一个有 给定的属性
目录 BeanUtils.copyProperties复制属性失败 描述 解决办法 BeanUtils.copyProper
目录 1.前言 2.一般使用 3.拷贝属性时忽略空值 4.使用注意事项(1) 5.使用注意事项(2) 6.使用注意事项(3)
我尝试使用 BeanUtils 将数据(java.util.Date)值从源复制到目标。它给出了日期到字符串转换异常。 此类问题的解决方案是什么? 我的实现如下.. import java.util
有这个: public class Parent { private String name; private int age; private Date birthDate;
我有一个 Web 项目,其中 BeanUtils 用于操作 bean。 在我的代码中,为了使 BeanUtils 将字符串记录正确地传输到 java.util.Date 字段中,一个 DateConv
目录 BeanUtils.copyProperties()参数的赋值顺序 BeanUtils.copyProperties初体验,及其参数含义解释
目录 BeanUtils.copyProperties()拷贝id属性失败 部分代码如下 解决方法 BeanUtils.co
场景 开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法: 1、一个一个set 2、用BeanUtils.copyProperties 很显然BeanUtils更加方便,也美观很多。 那么任
我有以下类(class): import org.apache.commons.beanutils.BeanUtils; import com.thoughtworks.xstream.XStream
我正在使用 BeanUtils.copyProperties 将一个对象的全部内容复制到从它继承的另一个对象中。 这里是上下文,从中复制值的域对象包含一组自定义类型 Xref 的对象。该自定义类型有一
org.apache.commons.beanutils.BeanUtils: BeanUtils.populate(Object bean, Map properties); Populate th
嗨,仍然学习一些java概念。很抱歉,如果这是一个愚蠢的问题 我在 jar 里有一个类。我正在使用反射动态地将它加载到我的类路径中。然后我像这样调用类构造函数方法: File jar
我正在尝试实现一些在我的实体和 DTO 之间进行转换的东西。 我有 DTO 的基类(称为模型): public class BaseModel implements Model { @Over
我使用PropertyUtils.copyProperties从Apache Commons BeanUtils在两个bean之间复制属性,现在遇到一个问题:两个bean中有同名字段,一个是Long类
我有一段代码,我使用 BeanUtils.copyProperities(dest, orig) 将一个类的相似属性复制到另一个类。然而。这是行不通的。我收到错误: 线程“main”中的异常 java
我想将 bean 类转换为映射(key=成员的名称,value=成员的值)。 我正在使用方法 BeanUtils.describe(beanClass); (编辑:我正在使用commons-beanu
我正在考虑使用 Apache BeanUtils 来管理我项目中的一些数据结构。该任务是针对仅在运行时已知的任意路径从列表中删除项。 我想我可以使用 BeanUtils 通过这样的调用将项目设置为 n
我是一名优秀的程序员,十分优秀!