小编Jav*_*ero的帖子

REST与Spring和Jackson完全数据绑定

我正在使用Spring MVC来处理JSON POST请求.在封面下我使用基于Jackson JSON处理器构建的MappingJacksonHttpMessageConverter,并在使用mvc:annotation-driven时启用.

我的一个服务收到一系列操作:

@RequestMapping(value="/executeActions", method=RequestMethod.POST)
    public @ResponseBody String executeActions(@RequestBody List<ActionImpl> actions) {
        logger.info("executeActions");
        return "ACK";
    }
Run Code Online (Sandbox Code Playgroud)

我发现Jackson将requestBody映射到java.util.LinkedHashMap项目列表(简单数据绑定).相反,我希望将请求绑定到类型化对象列表(在本例中为"ActionImpl").

我知道如果直接使用Jackson的ObjectMapper,这很容易做到:

List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { }); 
Run Code Online (Sandbox Code Playgroud)

但我想知道在使用Spring MVC和MappingJacksonHttpMessageConverter时实现这一目标的最佳方法是什么.任何提示?

谢谢

rest spring json spring-mvc jackson

38
推荐指数
3
解决办法
3万
查看次数

GWT JSR 303客户端验证

我正在开发一个使用JSR 303验证的Spring后端的GWT应用程序.应用程序可以脱机并使用浏览器HTML5/Gears数据库.

实现客户端验证的最佳方法是什么?到目前为止,我已经找到了gwt-validation框架(http://code.google.com/p/gwt-validation/),但它似乎已不再有效.

谢谢!

更新:

有一个新的GWT官方项目来支持JSR 303 Bean Validation(链接在这里).IMO这是项目成熟后的方法.

validation gwt bean-validation

13
推荐指数
2
解决办法
8180
查看次数

两个或更多(哈希)映射的联合

我有两个包含相同类型对象的地图:

Map<String, TaskJSO> a = new HashMap<String, TaskJSO>();
Map<String, TaskJSO> b = new HashMap<String, TaskJSO>();

public class TaskJSO { String id; }
Run Code Online (Sandbox Code Playgroud)

地图键是"id"属性.

a.put(taskJSO.getId(), taskJSO);
Run Code Online (Sandbox Code Playgroud)

我想获得一个列表:"Map b"中的所有值+"Map a"中不在"Map b"中的所有值.

这项操作的最快方法是什么?

谢谢

编辑:比较由id完成.因此,如果两个TaskJSO具有相同的id(等于方法被覆盖),则认为它们是相等的.

我的目的是从性能的角度来了解哪种方法最快.例如,如果我在地图中执行"比较"(如彼得所建议的那样),是否有任何区别:

Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
Run Code Online (Sandbox Code Playgroud)

或者如果我使用一套(如Nishant所建议):

Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());
Run Code Online (Sandbox Code Playgroud)

java performance hashmap

12
推荐指数
2
解决办法
2万
查看次数

GWT日志设置

我正在使用GWT 2.1 java.util.logging 仿真来记录客户端消息.根据该文档,提供了两个适用于客户端日志记录的格式化程序(TextFormatter和HTMLFormatter).

任何人都可以提供一个如何设置格式化程序并将其附加到GWT中的处理程序的示例吗?

谢谢

gwt logging

10
推荐指数
2
解决办法
2万
查看次数

GWT减少编译的javascript大小

我发现编译后的JavaScript的大小增长速度比我预期的要快.在我的项目中添加几行Java代码可以增加几个Kbs的脚本大小.

目前,我编译的项目重量为1Mb.除了MVP(活动和地点),测试(JUnit)和日志记录之外,我没有使用任何外部库.

我想知道是否有任何编码实践/建议,以保持编译脚本尽可能小.我不是指代码拆分,而是编码技术或模式,可以使编译的JavaScript有效地缩小.

非常感谢

javascript gwt

8
推荐指数
1
解决办法
2515
查看次数

键入安全异构容器模式以存储项目列表

我正在尝试实现一个类型安全的异构容器来存储异构对象的列表.

我已经看到了几个类型安全异构容器模式(链接)的exameples,但它们都存储了一个类型的单个对象.

我试着按如下方式实现它:

public class EntityOrganizer {  

    private Map<Class<?>, List<Object>> entityMap = new HashMap<Class<?>, List<Object>>();

    public <T> List<T> getEntities(Class<T> clazz) {
        return entityMap.containsKey(clazz) ? entityMap.get(clazz) : Collections.EMPTY_LIST;
    }

    private <T> void addEntity(Class<T> clazz, T entity) {
        List<T> entityList = (List<T>) entityMap.get(clazz);
        if(entityList == null) {
            entityList = new ArrayList<T>();
            entityMap.put(clazz, (List<Object>) entityList);
        }
        entityList.add(entity);
    }   
}
Run Code Online (Sandbox Code Playgroud)

但问题是这段代码充满了未经检查的演员阵容.有人可以帮助更好地实现这个吗?

非常感谢

java generics design-patterns

7
推荐指数
1
解决办法
6705
查看次数

Java子类构造函数

这是我需要扩展的外部类:

public class Binary {

    public Binary( byte type , byte[] data ){
        _type = type;
        _data = data;
    }

    public byte getType(){
        return _type;
    }

    public byte[] getData(){
        return _data;
    }

    public int length(){
        return _data.length;
    }

    final byte _type;
    final byte[] _data;
}
Run Code Online (Sandbox Code Playgroud)

这是我创建的子类:

import org.bson.types.Binary;

public class NoahId extends Binary {

 public NoahId(byte[] data) {
  //Constructor call must be the first statement in a constructor 
  super((byte) 0 , data);
 }
}
Run Code Online (Sandbox Code Playgroud)

我想强制所有子类(NoahId)具有某个长度的byte []数据,否则抛出异常.如果构造函数调用必须是子类构造函数中的第一个语句,我该如何执行此类检查?

使用静态方法创建我的类允许我进行检查,但我仍然需要定义一个显式构造函数.

java

4
推荐指数
1
解决办法
6201
查看次数

GWT收集性能和推荐实践

在GWT中使用集合的最佳方式和/或推荐做法是什么,特别是在寻找性能时?

我到目前为止找到的选项是:

  • JRE模拟了集合.对于Java开发人员而言,最自然的方式,但在GWT团队中,"不是理想的匹配运行内部浏览器,特别是移动浏览器的限制".在这里这里可以找到性能比较

  • GWT轻量级收藏.在其他改进之间,他们承诺将最小化编译脚本和绝对最大速度.但是7个月没有关于这个项目的消息.

  • 番石榴库在GWT中使用番石榴是否安全?如果是这样,它会带来真正的性能提升吗?

还有其他选择吗?

非常感谢

collections gwt guava

4
推荐指数
1
解决办法
3483
查看次数

GWT叠加深层复制

制作gwt叠加类型的深层副本的最佳方法是什么?

我正在寻找一个功能或库来检查GWT覆盖并克隆它.它必须能够克隆包含的数组或对象.

谢谢

gwt overlay clone

2
推荐指数
1
解决办法
3356
查看次数