Я новичок в сварке, и через несколько дней исследований, но я знаю только некоторые основные понятия сварки.
Я собираюсь использовать контейнер сварки в среде java se. И выполните следующие действия: Как проще всего использовать CDI и JPA в Java SE? мой сегмент кода приведен ниже:
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. Вот сегмент зависимостей jar в pom.xml
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>3.0.0.Alpha17</version>
мое намерение состоит в том, чтобы вставить объект SayHello в объект UseInject, чтобы окончательный вывод этого приложения был "Hello". Но не все так гладко, jvm сообщает о следующей ошибке:
и через поиск в Интернете есть поговорка, что создание пустого beans.xml - это нормально, и я следую этому не может дать эффект. А что касается основного метода, я подражаю Как проще всего использовать CDI и JPA в Java SE? Я не знаю, что они делают, и Что такое самый простой способ иметь CDI и JPA в Java SE? используйте аннотацию @Produces, я не знаю, следует ли мне ее использовать. И я намеревался использовать его для класса SayHello, но я не знаю, какую банку мне следует импортировать, чтобы использовать его, поэтому я сдаюсь.
Теперь я хочу: 1. знаете, как работает служба сварки для данного приложения, другими словами, что делает основной метод?
2. Как я могу успешно запустить свое приложение с помощью сварки?
3. когда мы должны использовать аннотацию @Produces
И я упомянул ряд соответствующих проблем, например, weld и java seКак выполнить загрузку сварки в тесте JUnit и т. д. но нахожу, что все они слишком старшие для меня. заранее спасибо за внимание.