我在javascript中看到了一个最奇怪的东西.服务器端(弹簧):
@RequestMapping(value = "/foo", method = RequestMethod.GET)
@ResponseBody
public Long foo() {
return 793548328091516928L;
}
Run Code Online (Sandbox Code Playgroud)
我返回一个long值并且:
$.get('/foo').done(function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
它表示长整数为"793548328091516900",用0替换(确实舍入)最后两位数.当我从任何浏览器的地址栏发出GET请求时,数字表示正确; 因此,在我看来,这是一个js问题.
从服务器返回一个字符串而不是long,并使用以下方法处理它:
var x = new Number(data).toFixed();
Run Code Online (Sandbox Code Playgroud)
显然是解决方案.但我不是很幸运,我必须处理一个复杂的POJO(转换为JSON),其中某些字段(有些是嵌套的)是用java.lang.Long类型键入的.如果我尝试将此POJO转换为另一个对象没有字段键入Long,则显然很麻烦.
有更清楚的方法解决这个障碍吗?
参考他们的 javadoc,KStream.transformValues需要额外的 storeName 参数,因此是有状态的,也transformValues可以使用我们可以使用的方法ProccessorContext和Punctuators。
是否有一个特殊的具体案例,我应该transformValues更喜欢mapValues?
我有一个jquery数据函数的奇怪问题.这是小提琴
正如您所看到的,我更新active数据但我看不到dom data-active属性值的变化,虽然我重新查询活动数据,但它会写入更改后的值.当我检查它时,$ .data()不会更新dom上的属性.
我有一个基本问题如下:
我在同一目录中有2个独立的模块main.js和logger.js.logger.js简单地说:
function Logger(){
return this;
};
Logger.prototype.log = function(str) {
console.log('[' + this.mPrefix + ']' + str);
};
Logger.prototype.init = function(pr){
this.mPrefix = pr;
}
module.exports = Logger;
Run Code Online (Sandbox Code Playgroud)
现在,我想在主模块中使用我的记录器,如下所示:
var logger = require('./logger.js');
logger.init('MAIN');
logger.log('foo');
Run Code Online (Sandbox Code Playgroud)
但节点坚持认为Logger没有命名的方法init或log.我也尝试过require('./logger.js')(),因为我传递的函数返回自我对象,但它没有帮助.在其他模块中定义对象并导出它们的最佳实践是什么?顺便说一句,它恰好通过这样做:
var logger = require('./logger.js');
var l = new logger();
l.init('MAIN');
l.log('bar');
Run Code Online (Sandbox Code Playgroud)
然而,这对我来说似乎很笨拙.有什么解释和建议吗?
我有一个简单的流应用程序将一个主题作为输入流并将 KeyValues 转换为另一个主题,例如:
StoreBuilder<KeyValueStore<Long, CategoryDto>> builder =
Stores.keyValueStoreBuilder(Stores.inMemoryKeyValueStore(CategoryTransformer.STORE_NAME),
Serdes.Long(), CATEGORY_JSON_SERDE);
streamsBuilder.addStateStore(builder)
.stream(categoryTopic, Consumed.with(Serdes.Long(), CATEGORY_JSON_SERDE))
.transform(CategoryTransformer::new, CategoryTransformer.STORE_NAME);
static class CategoryTransformer implements Transformer<Long, CategoryDto, KeyValue<Long, CategoryDto>> {
static final String STORE_NAME = "test-store";
private KeyValueStore<Long, CategoryDto> store;
@Override
public void init(ProcessorContext context) {
store = (KeyValueStore<Long, CategoryDto>) context.getStateStore(STORE_NAME);
}
@Override
public KeyValue<Long, CategoryDto> transform(Long key, CategoryDto value) {
store.put(key, value);
return KeyValue.pair(key, value);
}
@Override
public KeyValue<Long, CategoryDto> punctuate(long timestamp) {
return null;
}
@Override
public void close() {
}
}
Run Code Online (Sandbox Code Playgroud)
在这里我不得不使用转换器,因为我需要获取存储和更新相关值。 …
java ×3
javascript ×3
apache-kafka ×1
dom ×1
integer ×1
jquery ×1
jquery-data ×1
json ×1
logging ×1
node.js ×1
oop ×1
spring ×1