假设我有这个客户端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) 我有一个遗留项目有一个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) 是否有更好的方法一次绑定多个事件?我知道我能做到
<input (keyup)="callFunc()" (keydown)="callFunc()"/>..
我想知道是否有这样的短手:
<input (keyup,keydown)="callFunc()"/>
Run Code Online (Sandbox Code Playgroud)
我试过,它没有用..
谢谢,迈克尔
我正在使用 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) 虽然以前似乎已经问过这个问题,但人们依靠画布进行转换.问题是来自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实现正在使用String Interning进行性能提升(常见的JavaScript实现是否使用字符串实习?)时,我认为===字符串将获得恒定的O(1)时间.所以我对这个问题给出了错误的答案:
因为根据该问题的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
我有一个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
我有一个简单的组件文件来提交表单,我有一个 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) 我有一个这样的列表列表:
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
谢谢!
我想要一个像按钮一样的小图片,可以单击并具有更改主体背景图像的功能。我是一个新手,我正在努力学习。我认为,最简单的方法是将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)