小编Mic*_*dis的帖子

使用Jackson和Spring将JavaScript数组反序列化为Java LinkedHashSet不会删除重复项

假设我有这个客户端JSON输入:

{
   id: "5",
   types: [
      {id: "1", types:[]},
      {id: "2", types:[]},
      {id: "1", types[]}
   ]
}
Run Code Online (Sandbox Code Playgroud)

我有这门课:

class Entity {
    private String id;
    private Set<Entity> types = new LinkedHashSet<>();

    public String getId() {
        return this.id;
    }

    public String setId(String id) {
        this.id = id;
    }

    public Set<Entity> getTypes() {
        return types;
    }

    @JsonDeserialize(as=LinkedHashSet.class)
    public void setTypes(Set<Entity> types) {
        this.types = types;
    }

    @Override
    public boolean equals(Object o){
        if (o == null || !(o instanceof Entity)){
            return false;
        }
        return …
Run Code Online (Sandbox Code Playgroud)

java spring json jackson

10
推荐指数
1
解决办法
829
查看次数

如何通过IHttpHandler优先处理Web Api控制器?

我有一个遗留项目有一个IHttpHandler实现类,使用一个巨大的switch语句等路由所有请求.我试图引入属性路由与ApiControllers,但第一个始终具有优先级.是否可以配置系统(代码或IIS),以便Web ApiControllers优先于我的单个IHttpHandler实现类?在IIS中,我首先放置了我的AttributeRouting,然后是所有的aspx,但仍然没有首先处理Web Api控制器.无论我做什么(在同一个项目下都有它们).我不想介绍一个单独的项目.

编辑:有一个IHttpModule根据api /之后的内容决定将其路由到特定的ashx文件.其中一个是描述的..

编辑2:更具体地说:如果uri没有过滤的东西列表[文件,消息,属性...],它将被路由到Resource.aspx

所以api/file,api/message,api/property将从其他.ashx文件中处理 - 否则流量将转到Resource.ashx ...

因此,具有api/endpoint1,api/endpoint2,api/endpoint3的请求都将转到Resource.aspx.问题是如何将api/endpoint3路由到下面描述的API控制器.谢谢

简化的代码架构:

 //SolutionName/Api/MyModule.cs (Legacy Code)
 //this routes based on what is after api/ to Resource.ashx or other ashx files
 public class MyModule : IHttpModule {
    //if url doesn't contain [file,message,property ...] route to Resource.ashx
 }
Run Code Online (Sandbox Code Playgroud)
//SolutionName/API/Resource.ashx (Legacy Code)
//this is hit at any request solutionname/api/anything
public class DefaultHandler : IHttpHandler 
{
   public void ProcessRequest(HttpContext context) {
       String APIBranch = parse(context);
       switch(APIBranch)
       {
           case "endpoint1": methodOne(); break;
           case "endpoint2": …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc httphandler asp.net-web-api

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

有没有办法简单地绑定Angular 2中的多个事件?

是否有更好的方法一次绑定多个事件?我知道我能做到

<input (keyup)="callFunc()" (keydown)="callFunc()"/>..

我想知道是否有这样的短手:

<input (keyup,keydown)="callFunc()"/>
Run Code Online (Sandbox Code Playgroud)

我试过,它没有用..

谢谢,迈克尔

events angular

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

在休眠(springboot)中使用左连接和分页编写sql本机查询

我正在使用 spring 数据 JPA,我想在我的存储库中编写一个 SQL 查询。

我有以下 SQL 查询(注意 LEFT JOIN):

SELECT * FROM institution LEFT JOIN 
(select * from building_institutions where building_institutions.building_id = 1) as reserved_institutions
ON reserved_institutions.institutions_user_id = institution.user_id
WHERE reserved_institutions.institutions_user_id is null;
Run Code Online (Sandbox Code Playgroud)

我想在我的 InstitutionRepository 中执行它,如下所示:

@Repository
public interface InstitutionRepository extends JpaRepository<Institution, Long>, PagingAndSortingRepository<Institution,Long> {
    // doesn't work
    //@Query("SELECT b.institutions as bi FROM Building b left join Institution i WHERE bi.building_id not in :id")
    Page<Institution> findPotentialInstitutionsByBuildingId(@Param("id") Collection<Long> id, Pageable pageable);

    // doesn't work    
    @Query(
            value = "SELECT * …
Run Code Online (Sandbox Code Playgroud)

java mysql sql spring spring-data-jpa

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

如何在不使用canvas getImageData的情况下将png base64字符串转换为像素数组?

虽然以前似乎已经问过这个问题,但人们依靠画布进行转换.问题是来自base64 url​​,如下所示: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAFElEQVQIW2NkYGD4D8RYAeOQkgQAERQHAbuZaGoAAAAASUVORK5CYII=

var array = [ [0x00,0x00,0x00], ... 49 times ];对于7px×7px图像(在这种情况下是黑色)的像素阵列,像这样的颜色强度 ,我们必须使用这样的代码:

var mCanvas = document.createElement('canvas');
var base64DataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAFElEQVQIW2NkYGD4D8RYAeOQkgQAERQHAbuZaGoAAAAASUVORK5CYII=";
mCanvas.width = 7;
mCanvas.height = 7;
var mContext = mCanvas.getContext('2d');
var myImage = new Image();
myImage.setAttribute("src", base64DataUrl);
myImage.onload = function() { 
    var mContext = mCanvas.getContext('2d');
    var mImgData = mContext.getImageData(0,0,mCanvas.width,mCanvas.height);
}
Run Code Online (Sandbox Code Playgroud)

由于onload而变得异步并且非常痛苦(尽管它有效).

然后我们将使用这样的代码从画布中获取RGBA颜色

function convertCanvasToPixelsArray(mCanvas){
    var mContext = mCanvas.getContext('2d');
    console.log(mCanvas.width);
    var mImgData = mContext.getImageData(0,0,mCanvas.width,mCanvas.height);

    var srcIndex=0, dstIndex=0, curPixelNum=0;
    var pixelsArray = new Array(mCanvas.width*mCanvas.height);
    for (curPixelNum=0; curPixelNum<mCanvas.width*mCanvas.height;  curPixelNum++) …
Run Code Online (Sandbox Code Playgroud)

javascript base64 canvas

6
推荐指数
0
解决办法
2418
查看次数

为什么Javascript ===/==字符串相等有时具有恒定的时间复杂度,有时具有线性时间复杂度?

在我发现常见/最新的Javascript实现正在使用String Interning进行性能提升(常见的JavaScript实现是否使用字符串实习?)时,我认为===字符串将获得恒定的O(1)时间.所以我对这个问题给出了错误的答案:

JavaScript字符串相等性能比较

因为根据该问题的OP,它是O(N),所以将字符串输入加倍是等于需要的时间的两倍.他没有提供任何jsPerf,所以需要更多的调查,

所以我使用字符串实习的方案是:

var str1 = "stringwithmillionchars"; //stored in address 51242

var str2 = "stringwithmillionchars"; //stored in address 12313

"stringwithmillionchars"将被存储一次,比如在地址201012的内存中,并且str1和str2都将"指向"该地址201012.然后可以通过某种散列来确定该地址以映射到存储器中的特定位置.

这样做的时候

"stringwithmillionchars" === "stringwithmillionchars"

看起来像

getContentOfAddress(51242)===getContentOfAddress(12313)

要么 201012 === 201012

需要O(1)/恒定时间

JSPerfs /性能更新:

即使字符串长16倍,JSPerf似乎也显示常量时间?请看一看:

http://jsperf.com/eqaulity-is-constant-time

可能上面的字符串太小:这可能显示线性时间(感谢sergioFC)字符串是用循环构建的.我试过没有功能 - 仍然线性时间/我改变了一点http://jsfiddle.net/f8yf3c7d/3/.

根据https://www.dropbox.com/s/8ty3hev1b109qjj/compare.html?dl=0(sergioFC制作的 12MB文件)当你有一个字符串并且你已经在引号中分配了值,无论t1有多大和t2是(例如5930496个字符),它是0-1ms /即时时间.

看来,当你使用for循环或函数构建一个字符串时,字符串不会被实现.因此只有当您直接为带有引号的字符串分配时,才会发生实习var str = "test";

javascript string performance time-complexity string-interning

6
推荐指数
1
解决办法
1566
查看次数

有没有办法通过属性而不是注入使用AutoFac Web Api授权过滤器?

我有一个Autofac Web Api授权过滤器:

public class MyAuthorizationFilter : IAutofacAuthorizationFilter
{
    public void OnAuthorization(HttpActionContext actionContext){}
}

public class MyAuthorizationAttribute : Attribute
{
    public MyAuthorizationAttribute() { }
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用Autofac Web Api授权过滤器的唯一方法是在AutofacConfig.cs中注入它:

builder.RegisterType<MyAuthorizationFilter>()
.AsWebApiAuthorizationFilterFor<MyController>(
    c => c.MyMethod(default(MyModel))
).InstancePerDependency();
Run Code Online (Sandbox Code Playgroud)

如果我不像上面那样注入它,它似乎被忽略了

public MyController : ApiController {

    [MyAuthroziationFilter] // ignored
    [POST("")]
    public HttpResponseMessage MyMethod(MyModel myModel) { 
        [...]
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用AutoFac Web Api授权过滤器的属性/注释而不是通过AutoFac进行注入,并且还正确地注入了它们的依赖项?

authorization dependency-injection filter autofac asp.net-web-api

6
推荐指数
1
解决办法
2981
查看次数

在 vue 组件文件中调用 javascript 函数

我有一个简单的组件文件来提交表单,我有一个 javascript 函数来执行一个操作:

<template>
    <div>
       <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
            <h4 class="modal-title">Create Job</h4>
        </div>
        <div class="modal-body">
            <form method="post" @submit.prevent="signIn" @keydown="errors.clear($event.target.name)">
                <div class="form-group">
                    <label>Job Name</label>
                    <input type="text" class="form-control" placeholder="Web Developer" v-model="name">
                    <span v-text="errors.get('name')" class="text-danger help-block"></span>
                </div>

                <div class="form-group">
                    <label>Job Summary</label>
                    <textarea class="form-control" v-model="summary"></textarea>
                    <span v-text="errors.get('summary')" class="text-danger help-block"></span>
                </div>

                <div class="form-group">

                    <div class="col-sm-6" style="padding-left: 0px;">
                        <label>Salary Type</label>
                        <select class="form-control" v-model="salarytype">
                            <option value="">Select an option</option>
                            <option value="hourly">Hourly</option>
                            <option value="weekly">Weekly</option>
                            <option value="fortnightly">Fortnightly</option>
                            <option value="monthly">Monthly</option>
                        </select>
                        <span v-text="errors.get('salarytype')" class="text-danger help-block"></span>
                    </div>

                    <label>Salary</label>               
                    <div class="col-sm-6 …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

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

如何使用Java中的lambda函数对每列和每行的列表列表求和?

我有一个这样的列表列表:

List<List<Wrapper>> listOfLists = new ArrayList<>();

class Wrapper {
   private int value = 0;
   public int getValue() {
      return value;
   }
}
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

[
[Wrapper(3), Wrapper(4), Wrapper(5)],
[Wrapper(1), Wrapper(2), Wrapper(9)],
[Wrapper(4), Wrapper(10), Wrapper(11)],
]
Run Code Online (Sandbox Code Playgroud)

有没有一种简洁的方法来使用Java 8中的lambda函数来展平这个列表列表,如下所示:

(per column): [Wrapper(8), Wrapper(16), Wrapper(25)]
(per row): [Wrapper(12), Wrapper(12), Wrapper(25)]
Run Code Online (Sandbox Code Playgroud)

可能它可以使用不同大小的内部列表:

[
[Wrapper(3), Wrapper(5)],
[Wrapper(1), Wrapper(2), Wrapper(9)],
[Wrapper(4)],
]
Run Code Online (Sandbox Code Playgroud)

这将导致:

(per column): [Wrapper(8), Wrapper(7), Wrapper(9)]
(per row): [Wrapper(8), Wrapper(11), Wrapper(4)]
Run Code Online (Sandbox Code Playgroud)

似乎这样复杂得多: 打开列表的列表为列表使用lambda表达式3种方式拉平列表的列表.是否有理由更喜欢其中之一?

我最初的做法与列表类似:https: //stackoverflow.com/a/36878011/986160

谢谢!

java lambda java-8

6
推荐指数
1
解决办法
444
查看次数

div onclick函数更改主体背景图像

我想要一个像按钮一样的小图片,可以单击并具有更改主体背景图像的功能。我是一个新手,我正在努力学习。我认为,最简单的方法是将div带一个background-image。我也必须使用非语义网格。

因此,我几乎只有div带有背景图片。如何编写此功能?我敢肯定这真的很容易,我在这里读了20篇主题,但对我来说都没有用

编辑:添加了我的代码

#knapp {
  height:50px;
  width:50px;
  background-image:url(http://ingridwu.dmmdmcfatter.com/wp-content/uploads/2015/01/placeholder.png);
  background-repeat:no-repeat;
  background-size:contain;	
  position:absolute;
  top:90vh;
  right:3vw;
}
Run Code Online (Sandbox Code Playgroud)
<div id="knapp" class="grid-10 prefix-90"></div>
Run Code Online (Sandbox Code Playgroud)

javascript css jquery

5
推荐指数
1
解决办法
6216
查看次数