小编der*_*ink的帖子

如何使用两个安装公共依赖模块的Guice模块

我正在开展一个由四部分组成的项目:

  • Main将所有事物融合在一起的项目.这包含public static void main(String... args)入口点.
  • 零件 A
  • 零件 B
  • 第三方Common组件,这两个AB参考.

我正在使用Guice来处理所有四个部分之间的管道,这就是我的问题:
As和Bs主要的Guice模块中,我安装了一个扩展了一个模块的模块Common.在运行时,此设置失败,并显示以下错误:

common.SomeClass已配置绑定到common.AbstractCommonModule.configure().[ 来源 ]

原因是我要调用common.AbstractCommonModule.configure()两次; 一旦通过安装的子类实例common.AbstractCommonPrivateModule从组件Acom.a.MainModule.configure(),并从部件的第二时间Bcom.b.MainModule.configure().

只安装一个common.AbstractCommonPrivateModule in 实例Main不是一个选项,因为AbstractCommonPrivateModule实现了一个特定的binder方法bindComplicatedStuff(ComplicatedStuff),我只分别知道其中的参数AB.

我尝试通过将As和B各自的主要Guice模块包装在s中来解决这个问题PrivateModule.但是,由于下一个错误,此操作失败:

无法为%s创建绑定.它已经在一个或多个子注入器或私有模块上配置%s%n如果它在PrivateModule中,您是否忘记公开绑定?[ 来源 ]

在我的情况下,A's和B各自的主要Guice模块实际上是ServletModules …

java guice

21
推荐指数
1
解决办法
4831
查看次数

在Google AppEngine上部署Dropwizard

我一直试图找到一种在Google AppEngine上部署Dropwizard应用程序的方法,但到目前为止我还没有找到任何东西.

从这个问题(和答案)判断,我认为这可能是不可能的.我想确定一下,如果确实有效,我想学习如何.

有一个名为warwizard的dropwizard fork ,它显然可以让你从你的dropwizard代码创建war文件,但它已经超过6个月未被触及,这可能使得使用dropwizard文档很难.

google-app-engine dropwizard

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

10
推荐指数
1
解决办法
523
查看次数

RxJS:可观察量和单个观察者的递归列表

我在使用递归的可观察链时遇到了一些麻烦.

我正在使用RxJS,它目前在1.0.10621版本中,并且包含最基本的Rx功能,与jx的Rx一起使用.

让我为我的问题介绍一个示例场景:我正在轮询Twitter搜索API(JSON响应)以查找包含特定关键字的推文/更新.响应还包括"refresh_url",用于生成后续请求.对该后续请​​求的响应将再次包含新的refresh_url等.

Rx.jQuery允许我使Twitter搜索API调用一个可观察的事件,它产生一个onNext,然后完成.到目前为止我所尝试的是让onNext处理程序记住refresh_url并在onCompleted处理程序中使用它来为下一个请求生成一个新的observable和相应的观察者.这样,一个可观察的+观察者对无限期地跟随另一个.

这种方法的问题是:

  1. 当他们的前任尚未被处置时,后续的可观察/观察者已经活着.

  2. 我必须做很多令人讨厌的簿记,以保持对当前生活观察者的有效参考,其实际上可能有两个.(一个在onCompleted,另一个在其生命周期的其他地方)当然,这个参考需要取消订阅/处置观察者.记账的另一种方法是通过"仍在运行?" - 布尔值来实现副作用,正如我在我的例子中所做的那样.

示例代码:

            running = true;
            twitterUrl = "http://search.twitter.com/search.json";
            twitterQuery = "?rpp=10&q=" + encodeURIComponent(text);
            twitterMaxId = 0; //actually twitter ignores its since_id parameter

            newTweetObserver = function () {
                return Rx.Observer.create(
                        function (tweet) {
                            if (tweet.id > twitterMaxId) {
                                twitterMaxId = tweet.id;
                                displayTweet(tweet);
                            }
                        }
                    );
            }

            createTwitterObserver = function() {
                twitterObserver = Rx.Observer.create(
                        function (response) {
                            if (response.textStatus == "success") {
                                var data = response.data;
                                if (data.error == undefined) …
Run Code Online (Sandbox Code Playgroud)

javascript reactive-programming reactive-extensions-js rxjs

8
推荐指数
1
解决办法
4037
查看次数

Magnific popup facebook分享按钮仅在第二次点击时起作用

我有一个带有大胆弹出窗口的图库,带有一个分享按钮作为titleSrc.这是在按钮点击时调用的:

function callFacebook(item){
  console.log(item);
  FB.ui({
    method: 'feed',
    link: item,
    caption: 'Die besten Party-Pics bei party-news.de',
  }, function(response){
    console.log(response);
  });
}
Run Code Online (Sandbox Code Playgroud)

这是一个巨大的弹出式调用:

$('.gallery').magnificPopup({
  delegate: 'a', // child items selector, by clicking on it popup will open
  type: 'image',
  gallery: {
    enabled:true,
    tCounter: '%curr% von %total%',
    preload:false
  },
  image: {
    verticalFit:false,
    titleSrc:function(item){
        var image = item.el.attr("href");
        return '<a class="shareFacebook" onclick="callFacebook(\''+image+'\')" target="_blank"><i class="fa fa-facebook-official"></i>&nbsp;Foto teilen</a>';
    }
  },
    tClose: 'Schliessen',
    tLoading: 'Lade Bild...',
  // other options
});
Run Code Online (Sandbox Code Playgroud)

我得到点击图像的href并将其传递给callFacebook函数.我第一次点击分享按钮时,它只显示标准的og:标签.当我关闭此窗口并再次单击共享按钮时 - 它可以正常工作.图像显示在共享对话框中.有什么想法吗?

javascript magnific-popup

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

Spring Boot执行器健康端点+动态弹性4j断路器

我有一个 Spring Boot 应用程序,它使用基于resilience4j AOP 的@CircuitBreakers。

现在我想在端点中提供断路器的信息/actuator/health,但我没有在 JSON 输出中看到文档中描述的details.circuitBtreakers对象。

我究竟做错了什么?


相比之下,让动态缓存信息出现在/actuator/metrics端点中需要少量的自定义连接,但这是有详细记录的。我想知道是否有类似的技巧可以应用于动态定义的@CircuitBreaker端点注册/actuator/health

MyService.java:

@Service
public class MyService {
    @Autowired
    private CacheManager cacheManager;
    @Autowired
    private CacheMetricsRegistrar cacheMetricsRegistrar;

    @PostConstruct
    public void postConstruct() {
        // On-the-fly defined (annotation-based) caches are not auto-registered with micrometer metrics.
        final Cache cache = cacheManager.getCache("myCache");
        cacheMetricsRegistrar.bindCacheToRegistry(cache);
    }

    @CircuitBreaker(name = "myCB", fallbackMethod = "fallbackCallAnApi")
    public String callAnApi() throws RestClientException {
        // ...
    } …
Run Code Online (Sandbox Code Playgroud)

java spring-boot spring-boot-actuator resilience4j

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

从纯Java生成jOOQ类

有没有办法从纯Java代码生成jOOQ类?如果没有,最接近的替代方案是什么?理想情况下,我想在gradle构建中执行此操作.

我找到了这个答案,链接到这篇博文.这篇文章的精髓是这样的:

  1. 从JPA模型开始
  2. 将其转换为DDL脚本(.sql文件中充满了CREATE语句)
  3. 创建一个新的HSQLDB文件,并通过在其上运行该DDL脚本来填充表.将生成的数据库保存到磁盘.
  4. 从磁盘加载该DB并在其上运行jOOQ代码生成
  5. 使用生成的生成的jOOQ类.

关于这种方法有三件事让我困扰:

  • 那篇博文在Maven(&Ant)中完成了所有工作.我想使用Gradle,但我可以解决这个问题.
  • 我必须从JPA开始.我更喜欢从我的架构的纯jOOQ定义开始.jOOQ是否有模式定义DSL/API?
  • 作为最终产品,不需要中间步骤(DDL脚本和HSQLDB创建).相反,他们只需要将JPA模型转换为jOOQ理解为输入的东西.应该有一个更整洁(仅限Java)的方式,即使jOOQ没有自己的架构定义API.有吗?

java ddl code-generation database-schema jooq

5
推荐指数
1
解决办法
2516
查看次数

键入lambda-based/church booleans的同义词

假设true(t)和false(f)定义如下:

> let t = \x -> \_ -> x
t :: t1 -> t -> t1
> let f = \_ -> \y -> y
f :: t1 -> t -> t
Run Code Online (Sandbox Code Playgroud)

有没有办法定义一个类型同义词,可以捕获两个布尔值的类型?

lambda haskell

4
推荐指数
1
解决办法
99
查看次数

匹配任何路径的Jersey资源

我正在使用Jersey v1.xGuice Servlet.我想要做的是绑定一个匹配any 的Jersey资源@Path,这样我就可以使用Jersey来回复404.

我希望这样做,因为我的servlet由不同的组件组成(例如,生活在其中的休息API /api,以及生活在其下的Web UI /.在Guice术语中,这意味着我有几个ServletModules,每个都设置了一部分servlet的:

  • 在我的ApiServletModule:serve("/api").with(GuiceContainer.class, conf)
  • 在我的WebUiServletModule:serve("/").with(GuiceContainer.class, conf)

在这个设置中,我想从负责的每个子项目的代码库定义webapp(/api/)的每个部分的404响应主体的外观,而不必重新实现Jersey


到目前为止,我已经尝试绑定匹配的资源@Path("/"),@Path("*")@Path("/*"),但没有这些似乎当我要求被拾起/some/path/that/doesnt/exist

java servlets guice jersey-1.0

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

使用Graph API通过id/url将现有帖子分享到Facebook应用程序

所以在我的应用程序中,我从预定义页面显示一些Facebook帖子.我从我的服务器上获取帖子(服务器直接从Facebook获取),这样我就避免使用Facebook SDK.

对于每个帖子,我都有id和URL,每当用户按下帖子时,我就会在该帖子上打开Facebook应用.

现在我想添加用户将这些帖子分享到他们的个人资料页面的可能性,但是当用户打开一个帖子(在Facebook应用程序上)时,它似乎没有任何共享选项(只有喜欢和评论).其他选项是使用标准的Android共享功能(ACTION_SEND),但每当我以这种方式共享帖子的URL时,应用程序只共享该帖子的图片,而不是实际帖子.

任何帮助将非常感激,

问候

share facebook facebook-graph-api

0
推荐指数
1
解决办法
1218
查看次数