我是焊缝新手,经过几天的探索,我只知道焊缝的一些基本概念。
我打算在java se环境中使用焊接容器。并遵循在 Java SE 中拥有 CDI 和 JPA 的最简单方法是什么?我的代码段如下:
public class SayHello {
public SayHello(){}
public void sayHello(){
System.out.println("Hello");
}
}
import javax.inject.Inject;
import org.jboss.weld.environment.se.Weld;
import org.jboss.weld.environment.se.WeldContainer;
public class UseInject {
private SayHello obj;
public UseInject(){}
@Inject
public UseInject(SayHello obj){
this.obj = obj;
}
public void show(){
obj.sayHello();
}
public static void main(String[] args){
Weld weld = new Weld();
WeldContainer container = weld.initialize();
UseInject ui = container.instance().select(UseInject.class).get();
ui.show();
weld.shutdown();
}
}
我的应用程序基于maven。这是pom.xml中的 jar 依赖段
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>3.0.0.Alpha17</version>
我的意图是将 SayHello 对象注入到 UseInject 对象中,因此该应用程序的最终输出是“Hello”。但是事情并没有那么顺利,jvm报如下错误:
并且通过网上搜索,有一种说法是建立一个空的beans.xml是可以的,我按照它不能生效。至于我模仿的主要方法在Java SE中拥有CDI和JPA的最简单方法是什么? 我不知道它做了 什么,在 Java SE 中拥有 CDI 和 JPA 的最简单方法是什么?使用@Produces注解,我不知道我是否也应该使用它。我本来打算将它用于 SayHello 类,但我不知道应该导入哪个 jar 才能使用它,所以我放弃了。
现在我想: 1.知道se应用程序的焊接服务如何,换句话说,主要方法是做什么的?
2. 如何使用焊接成功运行我的应用程序?
3. 什么时候应该使用注解@Produces
我参考了一些相关问题,例如weld 和java se如何在JUnit 测试中引导weld-se等,但发现它们对我来说都是高级的。 感谢您提前关注。