小编Ast*_*ius的帖子

http HEAD vs GET性能

我正在设置一个REST Web服务,只需要尽快回答"是"或"否".

设计HEAD服务似乎是最好的方法,但我想知道我是否真的会比做GET请求获得一些时间.

我想我的身体流不能在我的服务器上打开/关闭(大约1毫秒?).由于要返回的字节数非常少,我是否可以在传输中获得IP数据包的任何时间?

在此先感谢您的回复!

编辑:

进一步解释上下文:

  • 如果它们处于活动状态,我有一组执行某些进程的REST服务.
  • 我有另一个REST服务,指示所有这些第一个服务的状态.

由于最后一个服务将经常被一组非常大的客户端调用(每隔5ms调用一次),我想知道使用HEAD方法是否可以进行有价值的优化?响应正文中返回约250个字符.HEAD方法至少可以获得这250个字符的传输,但这有什么影响呢?

我尝试对两种方法(HEAD与GET)之间的差异进行基准测试,运行1000次调用,但看不到任何增益(<1ms)......

get http head

99
推荐指数
6
解决办法
7万
查看次数

Hibernate多对多删除关系

我有一个hibernate多对多关系的问题:当我从我的集合中删除一个项目时,它不会在我的数据库中删除.我知道有很多类似的问题,但我没有通过阅读来修复我的问题.

我已经为它编写了一个JUnit测试用例.我的协会是建筑物和用户之间:

@Test
public void testBuildingManyToMany(){
    //Create 2 buildings
    Building building = createBuilding("b1");
    Building building2 = createBuilding("b2");
    //Create 1 user
    User user = createUser("u1");

    //Associate the 2 buildings to that user
    user.getBuildings().add(building);
    building.getUsers().add(user);

    user.getBuildings().add(building2);
    building2.getUsers().add(user);

    userController.save(user);
    user = userController.retrieve(user.getId());
    Assert.assertEquals(2, user.getBuildings().size());//Test OK

    //Test 1: remove 1 building from the list
    user.getBuildings().remove(building);
    building.getUsers().remove(user);
    userController.save(user);

    //Test 2: clear and add
    //user.getBuildings().clear();
    //user.getBuildings().add(building);
    //userController.save(user);
    //user = userController.retrieve(user.getId());
    //Assert.assertEquals(1, user.getBuildings().size());
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

...
Hibernate: insert into building_useraccount (userid, buildingid) values (?, ?)
Hibernate: insert …
Run Code Online (Sandbox Code Playgroud)

java orm many-to-many hibernate hibernate-mapping

6
推荐指数
2
解决办法
3635
查看次数

如何模拟get(id)请求

我正在构建一个应用程序原型并尝试模拟REST Web服务.

这是我的代码:

var mock = angular.module('mock', ['ngMockE2E']);
mock.run(function($httpBackend){
    users = [{id:1,name:'John'},{id:2,name:'Jack'}];
    $httpBackend.whenGET('/users').respond(users);
    $httpBackend.whenGET(new RegExp('\\/users\\/[0-9]+')).respond(users[0]);
}
Run Code Online (Sandbox Code Playgroud)

一切正常,我的资源User.query()返回所有用户,User.get({id:1})和User.get({id:2})返回相同的用户(John).

现在为了改进我的原型,我想返回适当的用户,匹配好的id.

我在角度文档中读到我应该能够用函数替换RegExp URI.我们的想法是从url中提取id以在response方法中使用它.然后我尝试了这个:

$httpBackend.whenGET(new function(url){
    alert(url);
    var regexp = new RegExp('\\/users\\/([0-9]+)'); 
    id = url.match(regexp)[1];  
    return regexp.test(url);
}).respond(users[id]);
Run Code Online (Sandbox Code Playgroud)

问题是url参数始终未定义.有什么想法实现我的目标?

angularjs angularjs-e2e

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