小编Kon*_*rus的帖子

嵌入式Jetty和Spring Web MVC

对于宠物项目,我希望嵌入式Jetty运行Spring Web MVC应用程序.我在Web容器中使用了Spring(很容易告诉"从哪里开始")并且我使用了没有Spring的嵌入式Jetty.

如果我想要两者一起工作,感觉有点像鸡肉或鸡蛋问题.组织项目的最佳方式是什么?换句话说,我应该放main()什么?它应该是一个Spring应用程序恰好将Jetty作为bean(那么上下文呢?)?或者我应该单独启动Jetty并通过servlet侦听器插入Spring?有什么警告?

java spring jetty

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

perl - 使用太多内存的整数数组?

当我运行以下脚本时:

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才能完成此任务?

perl types

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

Hibernate:我是否需要flush()?

我有一个双向的一对多关系.我试图像在这个文档中坚持它:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/example-parentchild.html#example-parentchild-bidir

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的收藏品吗?

java hibernate transactions

7
推荐指数
2
解决办法
6660
查看次数

JNLP与本地代码库 - 如何更新?

指定代码库是合法的:

<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/上总结了一些观察结果.将它发布在这里,以防它可能对某人有用.

java jnlp java-web-start

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

Spring 3.1:非XML等价的注释驱动的事务管理

Spring 3.1中的非XML(in @Configuration)等价物是<tx:annotation-driven>什么?

java spring

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

窗口函数和更多"本地"聚合

假设我有这个表:

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).

postgresql common-table-expression window-functions

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

动态模块/服务配置和AOT

我需要动态配置一些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()首先滥用这种方法?如何编写模块以便根据运行时开关生成不同的服务?

angular2-aot angular

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

Clojure:从模板生成函数

我有一个通用转换库的以下代码:

(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在第一个例子中二进制具有相同的功能.

clojure

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

"控制器"和"gui"之间的循环依赖

我正在用Java编写一个复杂的GUI,其中有许多组件在几个屏幕上工作,并与共享的逻辑和模型进行交互.显然,"gui"和"controller/logic"之间存在一些循环依赖关系:GUI中的用户操作被转发到控制器,控制器执行某些任务,然后需要在所有GUI中反映这些更改.在后台可能会发生一些事情,使控制器推送更新到GUI.等等.

现在,这是我的问题.监听器或观察器模式非常适合将更新推送到GUI.可以让我的GUI直接依赖于具体的控制器类吗?为什么/为什么不呢?有(并且总是会)只有一个这样的控制器.有像十几控制器调用的图形用户界面需要轮询状态和执行行动 - 我不爱的平凡回调接口少数那总是要的想法只有一个实现,也不是一个巨大的回调接口为所有各种行动.

language-agnostic design-patterns circular-dependency

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

Java 6中的垃圾优先(G1)收集器"生产就绪"吗?

G1垃圾收集器在Java(6)的最新版本中是否仍被认为是实验性的?它是安全的并且可以用于生产吗?

编辑:我指的是Oracle JVM.

java garbage-collection jvm

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