gpt4 book ai didi

java - @Inject 字段始终为空

转载 作者:搜寻专家 更新时间:2023-11-01 01:33:25 24 4
gpt4 key购买 nike

<分区>

我尝试像这样 @Inject 一个字段(它是一个 jar 模块,空的 beans.xml 存在于 META-INF 下):

IDataProvider 接口(interface)

public interface IDataProvider {
void test();
}

数据提供者实现 导入 javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class DataProvider implements IDataProvider {
private int i;

public DataProvider() {
i = 42;
}

@Override
public void test() {

}
}

以及我尝试注入(inject) DataProvider 的类

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
public class DataController {

@Inject
private IDataProvider dataProvider;

private int k;

public DataController() {
k = 42;
}
}

如果我在 Wildfly 上运行它,注入(inject)的 dataProvider 始终为 null(DataController 构造函数处的断点)。

在每个教程中都是这样完成的,所以我认为这应该可行。唯一的区别是这两个类都应该是@ApplicationScoped

我正在使用 Wildfly 8.2Final、Gradle、IntelliJ。我的 gradle.build 看起来像这样:

apply plugin: 'java'

repositories {
mavenCentral()
jcenter()
}

dependencies {
compile group:'javax', name:'javaee-web-api', version:'7.+'
compile group:'org.jboss.ejb3', name:'jboss-ejb3-ext-api', version:'2.+'
}

sourceSets {
main {
java {
srcDir 'src/api/java'
srcDir 'src/main/java'
}
}

test {
java {
srcDir 'src/test/java'
}
}
}

jar {
from ('./src') {
include 'META-INF/beans.xml'
}
}

有谁知道为什么这不起作用?我没有从 Wildfly 收到任何错误或异常。

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