gpt4 book ai didi

java - 如何将 Guice 2 集成到 Wicket 中?

转载 作者:行者123 更新时间:2023-12-02 08:32:25 24 4
gpt4 key购买 nike

我想将 Guice 2 与 Wicket 1.4 一起使用。有一个“wicket-guice”包,它使用 Guice 1。有人可以给我一个示例,说明如何配置 Wicket 以使用 Guice 2 进行注入(inject)(使用 Maven)。

正如你所看到的,我找到了一个解决方案,但我想知道,使用 Guice Servlets 是否会更好并使用 Guice 将整个 Wicket 应用程序注册为 ServletFilter。但我认为这会与 wickets 对象创建策略相冲突。

最佳答案

为了回答自己,我发布了在AtomicGamer Dev Blog的帮助下找到的解决方案。 .

由于 wicket-guice 仅支持 Guice 1,因此需要从 wicket-guice 扩展中排除 Guice。

<dependencies>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-guice</artifactId>
<version>${wicket.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.code.guice</groupId>
<artifactId>guice</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket</artifactId>
<version>${wicket.version}</version>
</dependency>
<dependencies>

实际的集成发生在 init 方法中,该方法调用 addComponentInstantiationListener 方法。

import com.google.inject.Guice;
import com.google.inject.Injector;
import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.guice.GuiceComponentInjector;

public class NavigatorApplication extends WebApplication {

@Override
public Class<? extends Page> getHomePage() {
return Startpage.class;
}

@Override
protected void init() {
super.init();
Injector injector = Guice.createInjector(new WebAppModule());
addComponentInstantiationListener(
new GuiceComponentInjector(this, injector));
}

}

关于java - 如何将 Guice 2 集成到 Wicket 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2972552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com