首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Errai IOC中使用provider?

如何在Errai IOC中使用provider?
EN

Stack Overflow用户
提问于 2012-10-22 18:26:28
回答 1查看 347关注 0票数 2

我有一个@IocProvider ()的问题,注解不起作用。代码与https://docs.jboss.org/author/display/ERRAI/Container+Wiring非常相似

代码语言:javascript
复制
public interface Test {
    String getGreeting();
}

@ApplicationScoped
public class TestImpl implements Test {
    public String getGreeting() {
        return "Hello:)";
    }
}

@IOCProvider
@Singleton
public class TestProvider implements Provider<Test> {
    @Override
    public Test get() {
        return new TestImpl();
    }
}

然后我想在我的广播服务(errai-bus)中使用DI。

代码语言:javascript
复制
@Service
public class BroadcastService implements MessageCallback {
    @Inject
    Test test;

    @Inject
    MessageBus bus;

    @Inject
    public BroadcastService(MessageBus bus) {
        this.bus = bus;
    }

    public void callback(Message message) {


        MessageBuilder.createMessage()
                .toSubject("BroadcastReceiver")
                .with("BroadcastText", test.getGreeting()).errorsHandledBy(new ErrorCallback() {
            @Override
            public boolean error(Message message, Throwable throwable) {
                return true;
            }
        }).sendNowWith(bus);
    }
}

我得到一个错误:

代码语言:javascript
复制
1) No implementation for com.gwtplatform.samples.basic.server.Test was bound.
  while locating com.gwtplatform.samples.basic.server.Test
    for field at com.gwtplatform.samples.basic.server.BroadcastService.test(BroadcastService.java:32)
  at org.jboss.errai.bus.server.service.ServiceProcessor$1.configure(ServiceProcessor.java:118)

如果我将代码更改为

代码语言:javascript
复制
@Inject
TestImpl test;

它起作用了,但我需要提供者。你有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-23 03:26:22

因为您正在尝试在服务器端代码中使用@IOCProvider。Errai IOC完全是客户端的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13009451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档