小编Roy*_*ove的帖子

gruntjs - 命令行参数

我在哪里可以获得命令行参数的句柄?

例如grunt dist --env=UAT.我如何获得价值env

当我在它的时候,如果没有在命令行上设置,我将如何为此分配默认值?

gruntjs

17
推荐指数
1
解决办法
6200
查看次数

Spring - 如何销毁原型范围的bean?

我有一个单例bean,它有一个创建原型bean实例的方法.我正在使用此处记录的方法来获取原型bean的实例.

public class SingletonService implements ApplicationContextAware {

    private ApplicationContext applicationContext;

    public void go() {

        MyPrototypeBean prototype = applicationContext
            .getBean(MyPrototypeBean.class);

        prototype.doSomething();
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
        throws BeansException {

        this.applicationContext = applicationContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

起初我认为这很好,当'go'方法返回时,我的'prototype'实例将超出范围,这意味着实例将没有引用并且将被垃圾收集.

但是,同行指出文档中的以下声明:

客户端代码必须清理原型范围的对象并释放原型bean所持有的昂贵资源.

所以听起来Spring会保留一个引用,所以gc永远不会把它拿起来?如果是这样的话,我如何告诉Spring发布引用?该文档提到我可以使用"自定义bean后处理器",但不清楚该处理器适合的位置以及它将运行的代码.

感谢所有人提前帮忙,罗伊

spring garbage-collection

15
推荐指数
1
解决办法
6787
查看次数

Tomcat - 按特定顺序启动webapps

我知道Tomcat和Servlet规范不支持按特定顺序启动Web应用程序.

然而,在我看来,这似乎是一个常见的用例,我想知道是否有人发现了一个聪明的解决方法.

我有webapp A,它使用Spring Remoting来公开共享服务,其中webapp B是一个客户端.除非webapp A正在运行,否则Webapp B无法初始化.但是,我的Tomcat始终是线性启动webapps,从webapp B开始.

出于基础结构的原因,我必须在同一个Tomcat服务器上运行它们.

有任何想法吗?

谢谢,罗伊

更新 -

事实证明,在我的特定情况下,订单无关紧要.原因是这样的:假设我使用下面的方法之一在应用程序B之前启动应用程序A.所以应用程序A启动,但是,由于Spring远程处理正在使用HTTP Invoker,HTTP端口尚未打开(它将无法打开直到所有应用程序都启动).所以A将开始,B将挂起,因为它正在寻找的端口尚未可用.卫生署.

最终结果是两个单独的Tomcat实例.

tomcat servlets

15
推荐指数
4
解决办法
2万
查看次数

骆驼 - '子路线'中的异常处理

Camel显式处理错误处理的两个"范围":

  • 全球
  • 每条路线

我遇到的问题是在"子路线"中抛出的异常.例如,我有这条路线:

from("direct:sendToWebservice").
    .processRef("massageBeforeSending").
    .to("http://webservice.com").
    .processRef("massageResponse");
Run Code Online (Sandbox Code Playgroud)

然后我有两个需要向web服务发送消息的其他路由:

from(direct:fromSystemA").
    .errorHandler(deadLetterChannel("direct:TellSystemA")).
    .to("direct:sendToWebservice");

from(direct:fromSystemB").
    .errorHandler(deadLetterChannel("direct:TellSystemB")).
    .to("direct:sendToWebservice");
Run Code Online (Sandbox Code Playgroud)

我想要发生的是,如果webservice路由抛出异常,它会传播到调用者,系统A或系统B将被通知.我没有看到实现这一目标的方法.

我觉得这将是一个常见的用例 - 有人曾经碰过它吗?

感谢你的宝贵时间,

罗伊

apache-camel

13
推荐指数
1
解决办法
4792
查看次数

angularjs - 运行时依赖注入?

简单的我希望..

这是一个参考的plunker.

我知道如何在编译时指定依赖项(请参阅MainCtrlInjected控制器).但是,如何在运行时下拉依赖项,给出该依赖项的名称?(参见MainCtrlInjectedRuntime控制器)

angularjs

12
推荐指数
1
解决办法
5116
查看次数

带有promise表达式的angularjs ng-show

我正在使用ng-show一个解析为一个解析为布尔值的promise的表达式.当我这样做时,我得到10个摘要迭代溢出.

请参阅http://plnkr.co/edit/XibYM0kCnXhKjNUeTsp3?p=preview

  <body ng-controller="MainCtrl">
    <p ng-show="returnsABoolean()">non promise</p>
    <p ng-show="returnsAPromiseThatResolvesToABoolean()">promise</p>
  </body>
Run Code Online (Sandbox Code Playgroud)

按Ctrl:

  $scope.returnsABoolean = ()->
    true

  $scope.returnsAPromiseThatResolvesToABoolean = ()->
    $q.when(false)
Run Code Online (Sandbox Code Playgroud)

我知道这{{somePromise}}会解决,但{{returnsAPromiseThatResolvesToABoolean()}}似乎会导致同样的问题.

有任何想法吗?我希望这可行..

javascript angularjs

12
推荐指数
2
解决办法
8355
查看次数

禁用表单验证

Angularjs通过FormController(例如跟踪原始,脏等)运行我的表格.我不需要这个功能; 我确定这会增加我的开销$digests.

我怎么能把它关掉?

angularjs

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

AngularJS - 禁用$ exceptionHandler

我不希望$ exceptionHandler处理任何异常 - 我希望它们能够推进到浏览器(主要用于Visual Studio中的IE测试).

我试过覆盖$ exceptionHandler并简单地重新抛出错误,这给了我10次迭代$ digest错误(这是有意义的).

我该如何完全关闭它?

编辑

不幸的是,重新抛出错误并没有解决问题 - IE只知道重新抛出的错误,而不是来自源.

javascript angularjs

11
推荐指数
1
解决办法
1648
查看次数

Camel - 扩展Java DSL?

我的路线中有一个重复的模式 - 每次调用时,某个处理器需要相同的3个Header设置,所以我的路由中有以下代码大约10次以上:

.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Run Code Online (Sandbox Code Playgroud)

每次都会以不同的方式填充标题,因此将其抽象为子路径并不能真正为我买任何东西.

我喜欢能够做的是将RouteDefinition子类化为在我的DSL中使用另一种方法来允许我这样做:

.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
Run Code Online (Sandbox Code Playgroud)

在'bazProcessor'中,设置标题并调用处理器.

我试图做到这一点,但似乎只有一些严重的可能不会用于未来的手术,并且似乎其他人也有类似的运气.

我需要将它们设置为标题,而不是将它们作为参数直接传递给处理器,因为这些值也在处理器之后用于路由.

是否有一些隐藏的设施来实现这样的目标?

apache-camel

9
推荐指数
1
解决办法
1972
查看次数

Grunt - 解析非字符串(例如数组)模板

假设我的grunt配置中有一个变量,数组作为值.一个真实世界的例子grunt.regarde.changed来自grunt-regarde插件,它列出了所有已更改的文件.

我想使用模板解析该数组,以便我可以(在这种情况下)复制更改的文件:

  copy: {
    staticWeb: {
      src: '<%= grunt.regarde.changed %>',
      dest: 'someDir'
    },
Run Code Online (Sandbox Code Playgroud)

什么src得到在这种情况下是一个单一的逗号分隔的字符串,而不是一个数组.Grunt的文件处理器不解析字符串,因此无法找到src文件.

我无法删除模板周围的单引号,因为它是无效的javascript.

那么如何将该grunt.regarde.changed数组传递给src变量呢?

javascript gruntjs

9
推荐指数
2
解决办法
3018
查看次数