【发布时间】:2018-06-07 17:52:49
【问题描述】:
我一直在研究 CDI 以简化代码,并且我一直在尝试将它与 Java EE 8 一起使用。我试图复制现有示例但没有成功。我想知道是否有人可能遇到过同样的问题:
PoolManager 类:
import javax.ejb.Startup;
import javax.ejb.Singleton;
import javax.annotation.PostConstruct;
@Singleton
@Startup
public class PoolManager {
private Queue<Object> pooledObjects;
@PostConstruct
private void init() {
System.out.println("Hi");
pooledObjects = new LinkedBlockingQueue<Object>(1_000);
for (int i = 0; i <= 1000; i++) {
pooledObjects.offer(i);
}
}
public void returnObject(Object o) {
pooledObjects.offer(o);
}
public Object borrowObject() {
return pooledObjects.poll();
}
}
UsePoolManager 类:
public class UsePoolManager {
@Inject
private PoolManager poolManager;
public void usePooledObject() {
Object object = this.poolManager.borrowObject();
System.out.println(object);
}
}
和主要的:
public static void main(String[] args) {
UsePoolManager user = new UsePoolManager();
user.usePooledObject();
}
}
注入似乎在运行时根本不起作用。我没有bean xml(我知道这没有必要,添加它并没有改变任何东西。)。
任何帮助将不胜感激。
谢谢!
检查我是使用 SE 还是 EE 进行澄清...
【问题讨论】:
-
我猜你是说 CDI。
-
你是怎么运行这个的?你说 EE 8,然后有一个
main()。 -
使用 jre.1.8.0_141 - 在 Eclipse 中使用 Main 调试 - 我已经使用 java 几个月了,不是专家,但我安装了 EE 版本.. - 我还在 gradle 中添加了如果有帮助,请使用以下依赖项..: // mvnrepository.com/artifact/javax.inject/javax.inject compile group: 'javax.inject', name: 'javax.inject', version: '1' // mvnrepository.com/artifact/javax.ejb/javax.ejb-api compile group: 'javax.ejb',名称:'javax.ejb-api',版本:'3.2.2'
-
我确实使用的是 SE 而不是 EE。感谢您的澄清!
标签: java jakarta-ee cdi