对于宠物项目,我希望嵌入式Jetty运行Spring Web MVC应用程序.我在Web容器中使用了Spring(很容易告诉"从哪里开始")并且我使用了没有Spring的嵌入式Jetty.
如果我想要两者一起工作,感觉有点像鸡肉或鸡蛋问题.组织项目的最佳方式是什么?换句话说,我应该放main()什么?它应该是一个Spring应用程序恰好将Jetty作为bean(那么上下文呢?)?或者我应该单独启动Jetty并通过servlet侦听器插入Spring?有什么警告?
当我运行以下脚本时:
my @arr = [1..5000000];
for($i=0; $i<5000000; $i++) {
$arr[$i] = $i;
if($i % 1000000 == 0) {
print "$i\n";
}
}
Run Code Online (Sandbox Code Playgroud)
它消耗大约500 MB的内存.用于高级编译语言我希望它大约是5M*4B = 20MB(每个数字4个字节).
我猜这是因为每个值都是标量,而不是简单的二进制数.是否可以通过将这些值视为数字来减少内存占用,或者只有500 MB才能完成此任务?
我有一个双向的一对多关系.我试图像在这个文档中坚持它:
Parent p = (Parent) session.load(Parent.class, pid);
Child c = new Child();
c.setParent(p);
p.getChildren().add(c);
session.save(c);
session.flush();
Run Code Online (Sandbox Code Playgroud)
那是flush()必需的吗?它到底是做什么用的?我知道它做了什么,但我发现它花了我100毫秒,如果可能的话我真的想避免它.
什么时候session.load()甚至session.refresh()被调用而且我没有脸红,它会包含新Child的收藏品吗?
指定代码库是合法的:
<jnlp spec="6.0+"
codebase="file:/c:/MyApp/"
href="myapp.jnlp">
Run Code Online (Sandbox Code Playgroud)
使用JWS导入时,它会创建桌面快捷方式,并且应用程序正在运行.
但是,有一点与远程代码库有很大不同.当我在应用程序运行时更新这些文件时,它基本上会停止工作ClassNotFoundExceptions.似乎JWS没有复制jar,或者在更新时立即复制它们,以某种方式覆盖正在运行的进程使用的jar.
我如何让它像文件是远程的一样工作?也就是说,将文件复制到缓存并仅在启动时检查更新.
编辑:我还没有办法做到这一点,并决定采用自制的替代品.在此过程中,我发现了一些错误,并在http://squirrel.pl/blog/2011/11/24/java-web-start-bugs-offline-edition/上总结了一些观察结果.将它发布在这里,以防它可能对某人有用.
Spring 3.1中的非XML(in @Configuration)等价物是<tx:annotation-driven>什么?
假设我有这个表:
select * from window_test;
k | v
---+---
a | 1
a | 2
b | 3
a | 4
Run Code Online (Sandbox Code Playgroud)
最终我想得到:
k | min_v | max_v
---+-------+-------
a | 1 | 2
b | 3 | 3
a | 4 | 4
Run Code Online (Sandbox Code Playgroud)
但我会很高兴得到这个(因为我可以很容易地过滤它distinct):
k | min_v | max_v
---+-------+-------
a | 1 | 2
a | 1 | 2
b | 3 | 3
a | 4 | 4
Run Code Online (Sandbox Code Playgroud)
使用PostgreSQL 9.1+窗口函数可以实现这一点吗?我试图了解我是否可以使用单独的分区来处理k=a此示例中的第一次和最后一次(按顺序排列v).
我需要动态配置一些Angular服务,具体取决于运行时切换.在AOT之前的几天,我使用以下代码使其工作:
@NgModule({
imports: [HttpModule],
providers: []
})
export class MyModule {
static forRoot(config: MyConfiguration): ModuleWithProviders {
return {
ngModule: MyModule,
providers: [
SomeService,
{
provide: SomeOtherService,
useFactory: (some: SomeService, http: Http) => {
switch (config.type) {
case 'cloud':
return new SomeOtherService(new SomethingSpecificForCloud());
case 'server':
return new SomeOtherService(new SomethingSpecificForServer());
}
},
deps: [SomeService, Http]
},
]
};
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我,AppModule我会导入这个MyModule.forRoot(myConfig).
当我更新CLI和Angular时,它不再编译,因为它无法进行静态分析.我理解为什么,但我仍然不确定解决它的正确方法是什么.
我是否forRoot()首先滥用这种方法?如何编写模块以便根据运行时开关生成不同的服务?
我有一个通用转换库的以下代码:
(defn using-format [format] {:format format})
(defn- parse-date [str format]
(.parse (java.text.SimpleDateFormat. format) str))
(defn string-to-date
([str]
(string-to-date str (using-format "yyyy-MM-dd")))
([str conversion-params]
(parse-date str (:format (merge (using-format "yyyy-MM-dd") conversion-params)))))
Run Code Online (Sandbox Code Playgroud)
我需要能够像这样调用它:
(string-to-date "2011-02-17")
(string-to-date "2/17/2011" (using-format "M/d/yyyy"))
(string-to-date "2/17/2011" {})
Run Code Online (Sandbox Code Playgroud)
第三种情况有些问题:地图不一定包含:format对功能至关重要的键.这就是merge默认值的原因.
我需要有十几个类似的函数用于所有其他类型之间的转换.是否有一种更优雅的方式,不需要我merge在每个功能中复制粘贴,使用等?
理想情况下,寻找这样的东西(宏?):
(defn string-to-date
(wrap
(fn [str conversion-params]
(parse-date str (:format conversion-params))) ; implementation
{:format "yyyy-MM-dd"})) ; default conversion-params
Run Code Online (Sandbox Code Playgroud)
...这将产生一个重载函数(一元和二元),merge在第一个例子中二进制具有相同的功能.
我正在用Java编写一个复杂的GUI,其中有许多组件在几个屏幕上工作,并与共享的逻辑和模型进行交互.显然,"gui"和"controller/logic"之间存在一些循环依赖关系:GUI中的用户操作被转发到控制器,控制器执行某些任务,然后需要在所有GUI中反映这些更改.在后台可能会发生一些事情,使控制器推送更新到GUI.等等.
现在,这是我的问题.监听器或观察器模式非常适合将更新推送到GUI.可以让我的GUI直接依赖于具体的控制器类吗?为什么/为什么不呢?有(并且总是会)只有一个这样的控制器.有像十几控制器调用的图形用户界面需要轮询状态和执行行动 - 我不爱的平凡回调接口少数那总是要的想法只有一个实现,也不是一个巨大的回调接口为所有各种行动.
G1垃圾收集器在Java(6)的最新版本中是否仍被认为是实验性的?它是安全的并且可以用于生产吗?
编辑:我指的是Oracle JVM.
java ×5
spring ×2
angular ×1
angular2-aot ×1
clojure ×1
hibernate ×1
jetty ×1
jnlp ×1
jvm ×1
perl ×1
postgresql ×1
transactions ×1
types ×1